diff --git a/Makefile b/Makefile index 0207e23..292d1ed 100644 --- a/Makefile +++ b/Makefile @@ -9,3 +9,7 @@ serve: examples: go run _tools/examplecompiler/main.go -o _examples -r _tools/examplecompiler/example_repos.json -t _tools/examplecompiler/example_template.tmp + +deploy: init examples + rm -rf docs + gitbook build . docs \ No newline at end of file diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs/developer/concepts/acks.html b/docs/developer/concepts/acks.html new file mode 100644 index 0000000..4111d69 --- /dev/null +++ b/docs/developer/concepts/acks.html @@ -0,0 +1,2358 @@ + + + + + + + Acknowledgements ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+ +
+ +
+ + + + + + + + +
+
+ +
+
+ +
+ +

Acknowledgements

+

In a system with at-most-once semantics, there are times when messages are lost. If your application is doing request-reply then it can simply use timeouts to handle network and application failures. When you are using one-way messaging the easiest way to insure message delivery is to turn it into a request-reply with the concept of an acknowledgement message, or ACKS. In NATS an ACK can simply be an empty message, a message with no body.

+
+digraph nats_request_reply { + rankdir=LR + + subgraph { + publisher [shape=box, style="rounded", label="Publisher"]; + } + + subgraph { + subject [shape=circle, label="Subject"]; + reply [shape=circle, label="Reply"]; + {rank = same subject reply} + } + + subgraph { + sub1[shape=box, style="rounded", label="Subscriber"]; + } + + publisher -> subject [label="msg1"]; + publisher -> reply [style="invis", weight=2]; + subject -> sub1 [label="msg1"]; + sub1 -> reply [label="ack"]; + reply -> publisher; +} +
+ +

Because the ACK can be empty it can take up very little network bandwidth, but the idea of the ACK turns a simple fire-and-forget into a fire-and-know world where the sender can be sure that the message was received by the other side, or with scatter-gather, several other sides.

+ + +
+ +
+
+
+ +

results matching ""

+
    + +
    +
    + +

    No results matching ""

    + +
    +
    +
    + +
    +
    + +
    + + + + + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/concepts/intro.html b/docs/developer/concepts/intro.html new file mode 100644 index 0000000..a4b07ab --- /dev/null +++ b/docs/developer/concepts/intro.html @@ -0,0 +1,2348 @@ + + + + + + + Concepts ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + +
    + +
    + + + + + + + + +
    +
    + +
    +
    + +
    + +

    NATS Messaging Concepts

    +

    NATS messaging involves the electronic exchange of data among computer applications and provides a layer between the application and the underlying physical network. Application data is encoded as a message and sent by a publisher. The message is received, decoded, and processed by one or more subscribers.

    +

    By providing a central, easily discovered broker, NATS makes it easy for programs to communicate across different environments, languages, and systems. All clients have to do is connect to the broker, subscribe or publish to a subject and process messages. With this simple design, NATS lets programs share common message-handling code, isolate resources and interdependencies, and scale by easily handling an increase in message volume.

    +
    +graph nats { + graph [splines=ortho, nodesep=1]; + + publisher [shape="record", label="{Application 1 | NATS Publisher}"]; + application [shape="record", label="{Application 3 | }"]; + gnatsd [shape="box", label="", width=4, height=0, penwidth=1]; + subscriber [shape="record", label="{ NATS Subscriber | Application 2}"]; + + publisher:nats -- gnatsd [penwidth=2]; + application:nats -- gnatsd; + gnatsd -- subscriber:nats [penwidth=2, dir="forward"]; +} +
    + +

    NATS core offers an at most once quality of service. If a subscriber is not listening on the subject (no subject match), or is not active when the message is sent, the message is not received. This is the same level of guarantee that TCP/IP provides. By default, NATS is a fire-and-forget messaging system. If you need higher levels of service, you can either use NATS Streaming, or build the additional reliability into your client(s) yourself.

    + + +
    + +
    +
    +
    + +

    results matching ""

    +
      + +
      +
      + +

      No results matching ""

      + +
      +
      +
      + +
      +
      + +
      + + + + + + + + + + + + + + +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/concepts/pubsub.html b/docs/developer/concepts/pubsub.html new file mode 100644 index 0000000..d322c72 --- /dev/null +++ b/docs/developer/concepts/pubsub.html @@ -0,0 +1,2348 @@ + + + + + + + Publish-Subscribe ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + + + + + + +
      + +
      + +
      + + + + + + + + +
      +
      + +
      +
      + +
      + +

      Publish-Subscribe and Fan-Out

      +

      NATS implements a publish-subscribe message distribution model for one-to-many communication. A publisher sends a message on a subject and any active subscriber listening on that subject receives the message. Subscribers can also register interest in wildcard subjects that work a bit like a regular expression (but only a bit). This one-to-many pattern is sometimes called fan-out.

      +
      +digraph nats_pub_sub { + rankdir=LR + publisher [shape=box, style="rounded", label="Publisher"]; + subject [shape=circle, label="Subject"]; + sub1 [shape=box, style="rounded", label="Subscriber"]; + sub2 [shape=box, style="rounded", label="Subscriber"]; + sub3 [shape=box, style="rounded", label="Subscriber"]; + + publisher -> subject [label="msg1"]; + subject -> sub1 [label="msg1"]; + subject -> sub2 [label="msg1"]; + subject -> sub3 [label="msg1"]; +} +
      + +

      Try NATS publish subscribe on your own, using a live server by walking through the pub-sub tutorial.

      + + +
      + +
      +
      +
      + +

      results matching ""

      +
        + +
        +
        + +

        No results matching ""

        + +
        +
        +
        + +
        +
        + +
        + + + + + + + + + + + + + + +
        + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/concepts/queue.html b/docs/developer/concepts/queue.html new file mode 100644 index 0000000..51c06e9 --- /dev/null +++ b/docs/developer/concepts/queue.html @@ -0,0 +1,2351 @@ + + + + + + + Queue Groups ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + + + + + + + + +
        + +
        + +
        + + + + + + + + +
        +
        + +
        +
        + +
        + +

        Queue Subscribers & Sharing Work

        +

        NATS provides a load balancing feature called queue subscriptions. Using queue subscribers will load balance message delivery across a group of subscribers which can be used to provide application fault tolerance and scale workload processing.

        +

        To create a queue subscription, subscribers register a queue name. All subscribers with the same queue name form the queue group. As messages on the registered subject are published, one member of the group is chosen randomly to receive the message. Although queue groups have multiple subscribers, each message is consumed by only one.

        +

        One of the great features of NATS is that queue groups are defined by the subscribers, not on the server. Applications can create new queue groups without any server change.

        +

        Queue subscribers are ideal for auto scaling as you can add or remove them anytime, without any configuration changes or restarting the server or clients.

        +
        +digraph nats_queues { + rankdir=LR + publisher [shape=box, style="rounded", label="Publisher"]; + subject [shape=circle, label="Queue"]; + sub1 [shape=box, style="rounded", label="Subscriber"]; + sub2 [shape=box, style="rounded", label="Subscriber"]; + sub3 [shape=box, style="rounded", label="Subscriber"]; + + publisher -> subject [label="msgs 1,2,3"]; + subject -> sub1 [label="msg 2"]; + subject -> sub2 [label="msg 1"]; + subject -> sub3 [label="msg 3"]; +} +
        + +

        Try NATS queue subscriptions on your own, using a live server by walking through the queueing tutorial.

        + + +
        + +
        +
        +
        + +

        results matching ""

        +
          + +
          +
          + +

          No results matching ""

          + +
          +
          +
          + +
          +
          + +
          + + + + + + + + + + + + + + +
          + + +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/concepts/reqreply.html b/docs/developer/concepts/reqreply.html new file mode 100644 index 0000000..37969e6 --- /dev/null +++ b/docs/developer/concepts/reqreply.html @@ -0,0 +1,2365 @@ + + + + + + + Request-Reply ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          + + + + + + + + +
          + +
          + +
          + + + + + + + + +
          +
          + +
          +
          + +
          + +

          Request-Reply and Scatter-Gather

          +

          NATS supports two flavors of request reply messaging: point-to-point or one-to-many. Point-to-point involves the fastest or first to respond. In a one-to-many exchange, you can set a limit on the number of responses the requestor may receive or use a timeout to limit on the speed of the response. One-to-many request reply is sometimes called scatter gather.

          +

          In a request-response exchange the publish request operation publishes a message with a reply subject expecting a response on that reply subject. Many libraries allow you to use a function that will automatically wait for a response with a timeout. You can also handle that waiting process yourself.

          +

          The common pattern used by the libraries is that the request creates a unique inbox and performs a request call with the inbox reply and returns the first reply received. This is optimized in the case of multiple responses by ignoring later responses automatically.

          +
          +digraph nats_request_reply { + rankdir=LR + + subgraph { + publisher [shape=box, style="rounded", label="Publisher"]; + } + + subgraph { + subject [shape=circle, label="Subject"]; + reply [shape=circle, label="Reply"]; + {rank = same subject reply} + } + + subgraph { + sub1 [shape=box, style="rounded", label="Subscriber"]; + sub2 [shape=box, style="rounded", label="Subscriber"]; + sub3 [shape=box, style="rounded", label="Subscriber"]; + } + + publisher -> subject [label="msg1"]; + publisher -> reply [style="invis", weight=2]; + reply -> sub3 [style="invis", weight=2]; + subject -> sub1 [label="msg1", style="dotted"]; + subject -> sub2 [label="msg1", style="dotted"]; + subject -> sub3 [label="msg1"]; + sub3 -> reply; + reply -> publisher; +} +
          + +

          Try NATS request reply on your own, using a live server by walking through the request/reply tutorial.

          + + +
          + +
          +
          +
          + +

          results matching ""

          +
            + +
            +
            + +

            No results matching ""

            + +
            +
            +
            + +
            +
            + +
            + + + + + + + + + + + + + + +
            + + +
            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/concepts/seq_num.html b/docs/developer/concepts/seq_num.html new file mode 100644 index 0000000..0f053d7 --- /dev/null +++ b/docs/developer/concepts/seq_num.html @@ -0,0 +1,2352 @@ + + + + + + + Sequence Numbers ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            +
            + + + + + + + + +
            + +
            + +
            + + + + + + + + +
            +
            + +
            +
            + +
            + +

            Sequence Numbers

            +

            A common problem for one-to-many messages is that a message can get lost or dropped due to a network failure. A simple pattern for resolving this situation is to include a sequence id with the message. Receivers can check the sequence id to see if they miss anything.

            +
            +digraph nats_pub_sub { + rankdir=LR + publisher [shape=box, style="rounded", label="Publisher"]; + subject [shape=circle, label="Subject"]; + sub [shape=box, style="rounded", label="Subscriber"]; + + publisher -> subject [label="updates.1"]; + publisher -> subject [label="updates.2"]; + publisher -> subject [label="updates.3"]; + + subject -> sub [label="updates.*"]; +} +
            + +

            In order to really leverage sequence ids there are a few things to keep in mind:

            +
              +
            • Each sender will have to use their own sequence
            • +
            • If possible, receivers should be able to ask for missing messages by id
            • +
            +

            With NATS you can embed sequence ids in the message, or you can include them in the subject. For example, a sender can send messages to updates.1, updates.2, etc... and the subscribers can listen to updates.* and optionally parse the subject to determine the sequence id.

            + + +
            + +
            +
            +
            + +

            results matching ""

            +
              + +
              +
              + +

              No results matching ""

              + +
              +
              +
              + +
              +
              + +
              + + + + + + + + + + + + + + +
              + + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/concepts/subjects.html b/docs/developer/concepts/subjects.html new file mode 100644 index 0000000..6bef650 --- /dev/null +++ b/docs/developer/concepts/subjects.html @@ -0,0 +1,2393 @@ + + + + + + + Subject-Based Messaging ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + + + +
              + +
              + +
              + + + + + + + + +
              +
              + +
              +
              + +
              + +

              Subject-based Messaging

              +

              Fundamentally NATS is about publishing and listening for messages. Both of these depend heavily on Subjects which scope messages into streams or topics. At its simplest, a subject is just a string of characters that form a name the publisher and subscriber can used to find each other.

              +
              +digraph g { + rankdir=LR + publisher [shape=box, style="rounded", label="PUB time.us"]; + subject [shape=circle, label="gnatsd"]; + sub1 [shape=box, style="rounded", label="SUB time.us"]; + sub2 [shape=box, style="rounded", label="SUB time.us"]; + + publisher -> subject [label="msg"]; + subject -> sub1 [label="msg"]; + subject -> sub2 [label="msg"]; +} +
              + +

              The NATS server reserves a few characters as special, and the specification says that only "alpha-numeric" characters plus the "." should be used in subject names. Subjects are case-sensitive and can not contain whitespace. For safety across clients, ASCII characters should be used, although this is subject to change in the future.

              +

              Subject Hierarchies

              +

              The . character is used to create a subject hierarchy. For example, a world clock application might define the following to logically group related subjects:

              +
              time.us
              +time.us.east
              +time.us.east.atlanta
              +time.eu.east
              +time.us.east.warsaw
              +
              +

              to logically group related subjects.

              +

              Wildcards

              +

              NATS provides two wildcards that can take the place of one or more elements in a dot-separated subject. Subscribers can use these wildcards to listen to multiple subjects with a single subscription but Publishers will always use a fully specified subject, without the wildcard.

              +

              Matching A Single Token

              +

              The first wildcard is * which will match a single token. For example, if an application wanted to listen for eastern time zones, they could subscribe to time.*.east, which would match time.us.east and time.eu.east.

              +
              +digraph g { + rankdir=LR + publisher [shape=box, style="rounded", label="PUB time.us.east"]; + subject [shape=circle, label="gnatsd"]; + sub1 [shape=box, style="rounded", label="SUB time.*.east"]; + sub2 [shape=box, style="rounded", label="SUB time.us.east"]; + + publisher -> subject [label="msg"]; + subject -> sub1 [label="msg"]; + subject -> sub2 [label="msg"]; +} +
              + +

              Matching Multiple Tokens

              +

              The second wildcard is > which will match one or more tokens, and can only appear at the end of the subject. For example, time.us.> will match time.us.east and time.us.east.atlanta, while time.us.* would only match time.us.east since it can't match more than one token.

              +
              +digraph g { + rankdir=LR + publisher [shape=box, style="rounded", label="PUB time.us.east.atlanta"]; + subject [shape=circle, label="gnatsd"]; + sub1 [shape=box, style="rounded", label="SUB time.us.east.atlanta"]; + sub2 [shape=box, style="rounded", label="SUB time.us.*"]; + sub3 [shape=box, style="rounded", label="SUB time.us.>"]; + + publisher -> subject [label="msg"]; + subject -> sub2 [style="invis"]; + subject -> sub1 [label="msg"]; + subject -> sub3 [label="msg"]; +} +
              + +

              Monitoring and Wire Taps

              +

              Subject to your security configuration, wildcards can be used for monitoring by creating something sometimes called a wire tap. In the simplest case you can create a subscriber for >. This application will receive all messages, again subject to security settings, sent on your NATS cluster.

              + + +
              + +
              +
              +
              + +

              results matching ""

              +
                + +
                +
                + +

                No results matching ""

                + +
                +
                +
                + +
                +
                + +
                + + + + + + + + + + + + + + +
                + + +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/cluster.html b/docs/developer/connecting/cluster.html new file mode 100644 index 0000000..896209a --- /dev/null +++ b/docs/developer/connecting/cluster.html @@ -0,0 +1,2469 @@ + + + + + + + Connecting to a Cluster ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                +
                + + + + + + + + +
                + +
                + +
                + + + + + + + + +
                +
                + +
                +
                + +
                + +

                Connecting to a Cluster

                +

                When connecting to a cluster, there are a few things to think about.

                +
                  +
                • Passing a URL for each cluster member (semi-optional)
                • +
                • The connection algorithm
                • +
                • The reconnect algorithm (discussed later)
                • +
                • Server provided URLs
                • +
                +

                When a client library first tries to connect it will use the list of URLS provided to the connection options or function. These URLS are checked, usually in order, and the first successful connection is used.

                +

                After a client connects to the server, the server may provide a list of URLs for additional known servers. This allows a client to connect to one server and still have other servers available during reconnect.

                +

                To insure the initial connection, your code should include a list of reasonable front line servers. Those servers may know about other members of the cluster, and may tell the client about those members. But you don't have to configure the client to pass every valid member of the cluster in the connect method.

                +

                By providing the ability to pass multiple connect options NATS can handle the possibility of a machine going down or being unavailable to a client. By adding the ability of the server to feed clients a list of known servers as part of the client-server protocol the mesh created by a cluster can grow and change organically while the clients are running.

                +

                Note, failure behavior is library dependent, please check the documentation for your client library on information about what happens if the connect fails.

                +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                +
                servers := []string{"nats://localhost:1222",
                +	"nats://localhost:1223",
                +	"nats://localhost:1224",
                +}
                +
                +nc, err := nats.Connect(strings.Join(servers, ","))
                +if err != nil {
                +	log.Fatal(err)
                +}
                +defer nc.Close()
                +
                +// Do something with the connection
                +
                +
                +
                + +
                +
                Options options = new Options.Builder().
                +                            server("nats://localhost:1222").
                +                            server("nats://localhost:1223").
                +                            server("nats://localhost:1224").
                +                            build();
                +Connection nc = Nats.connect(options);
                +
                +// Do something with the connection
                +
                +nc.close();
                +
                +
                + +
                +
                let nc = NATS.connect({
                +    servers: [
                +        "nats://demo.nats.io:4222",
                +        "nats://localhost:4222"
                +    ]}
                +);
                +
                +nc.on('connect', (c) => {
                +    // Do something with the connection
                +    doSomething();
                +    // When done close it
                +    nc.close();
                +});
                +nc.on('error', (err) => {
                +    failed(err);
                +});
                +
                +
                + +
                +
                nc = NATS()
                +await nc.connect(servers=[
                +   "nats://127.0.0.1:1222",
                +   "nats://127.0.0.1:1223",
                +   "nats://127.0.0.1:1224"
                +   ])
                +
                +# Do something with the connection
                +
                +await nc.close()
                +
                +
                +
                + +
                +
                require 'nats/client'
                +
                +NATS.start(servers: ["nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"]) do |nc|
                +   # Do something with the connection
                +
                +   # Close the connection
                +   nc.close
                +end
                +
                +
                + +
                +
                // will throw an exception if connection fails
                +let nc = await connect({
                +        servers: [
                +            "nats://demo.nats.io:4222",
                +            "nats://localhost:4222"
                +        ]
                +});
                +// Do something with the connection
                +
                +// When done close it
                +nc.close();
                +
                +
                + +
                + +
                + +
                +
                +
                + +

                results matching ""

                +
                  + +
                  +
                  + +

                  No results matching ""

                  + +
                  +
                  +
                  + +
                  +
                  + +
                  + + + + + + + + + + + + + + +
                  + + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/connect_timeout.html b/docs/developer/connecting/connect_timeout.html new file mode 100644 index 0000000..bca10be --- /dev/null +++ b/docs/developer/connecting/connect_timeout.html @@ -0,0 +1,2431 @@ + + + + + + + Setting a Connect Timeout ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  +
                  + + + + + + + + +
                  + +
                  + +
                  + + + + + + + + +
                  +
                  + +
                  +
                  + +
                  + +

                  Setting a Connect Timeout

                  +

                  Each library has its own, language preferred way, to pass connection options. One of the most common options is a connection timeout. To set the maximum time to connect to a server to 10 seconds:

                  +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  +
                  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
                  +
                  +
                  +
                  + +
                  +
                  Options options = new Options.Builder().
                  +                            server("nats://demo.nats.io:4222").
                  +                            connectionTimeout(Duration.ofSeconds(10)). // Set timeout
                  +                            build();
                  +Connection nc = Nats.connect(options);
                  +
                  +// Do something with the connection
                  +
                  +nc.close();
                  +
                  +
                  + +
                  +
                  // connection timeout is not supported on node-nats
                  +
                  +
                  + +
                  +
                  nc = NATS()
                  +await nc.connect(connect_timeout=2)
                  +
                  +# Do something with the connection
                  +
                  +await nc.close()
                  +
                  +
                  +
                  + +
                  +
                  # There is currently no connect timeout as part of the Ruby NATS client API, but you can use a timer to mimic it.
                  +require 'nats/client'
                  +
                  +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)
                  +
                  +
                  + +
                  +
                  let nc = await connect({
                  +    url: "nats://demo.nats.io:4222",
                  +    timeout: 1000
                  +});
                  +
                  +
                  +
                  + +
                  + +
                  + +
                  +
                  +
                  + +

                  results matching ""

                  +
                    + +
                    +
                    + +

                    No results matching ""

                    + +
                    +
                    +
                    + +
                    +
                    + +
                    + + + + + + + + + + + + + + +
                    + + +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/default_server.html b/docs/developer/connecting/default_server.html new file mode 100644 index 0000000..9c04b92 --- /dev/null +++ b/docs/developer/connecting/default_server.html @@ -0,0 +1,2444 @@ + + + + + + + Connecting to the Default Server ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    +
                    + + + + + + + + +
                    + +
                    + +
                    + + + + + + + + +
                    +
                    + +
                    +
                    + +
                    + +

                    Connecting to the Default Server

                    +

                    Some libraries also provide a special way to connect to a default url, which is general nats://localhost:4222:

                    +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    +
                    nc, err := nats.Connect(nats.DefaultURL)
                    +if err != nil {
                    +	log.Fatal(err)
                    +}
                    +defer nc.Close()
                    +
                    +// Do something with the connection
                    +
                    +
                    +
                    + +
                    +
                    Connection nc = Nats.connect();
                    +
                    +// Do something with the connection
                    +
                    +nc.close();
                    +
                    +
                    + +
                    +
                    let nc = NATS.connect();
                    +nc.on('connect', (c) => {
                    +    // Do something with the connection
                    +    doSomething();
                    +    // When done close it
                    +    nc.close();
                    +});
                    +nc.on('error', (err) => {
                    +    failed(err);
                    +});
                    +
                    +
                    + +
                    +
                    nc = NATS()
                    +await nc.connect()
                    +
                    +# Do something with the connection
                    +
                    +await nc.close()
                    +
                    +
                    +
                    + +
                    +
                    require 'nats/client'
                    +
                    +NATS.start do |nc|
                    +   # Do something with the connection
                    +
                    +   # Close the connection
                    +   nc.close
                    +end
                    +
                    +
                    + +
                    +
                    // 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) => {
                    +        nc1 = c;
                    +        // Do something with the connection
                    +        nc1.close();
                    +    });
                    +    // add a .catch/.finally
                    +
                    +
                    + +
                    + +
                    + +
                    +
                    +
                    + +

                    results matching ""

                    +
                      + +
                      +
                      + +

                      No results matching ""

                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + + + + + + + + + + + + + + +
                      + + +
                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/intro.html b/docs/developer/connecting/intro.html new file mode 100644 index 0000000..d3661f2 --- /dev/null +++ b/docs/developer/connecting/intro.html @@ -0,0 +1,2334 @@ + + + + + + + Connecting ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      + + + + + + + + +
                      + +
                      + +
                      + + + + + + + + +
                      +
                      + +
                      +
                      + +
                      + +

                      Connecting to NATS

                      +

                      Most client libraries provide several ways to connect to the NATS server. The server itself is identified by a standard URL with the nats protocol. Throughout these examples we will rely on a test server, provided by nats.io, at nats://demo.nats.io:4222, where 4222 is the default port for NATS.

                      +

                      NATS clients also support the tls protocol to indicate that the client wants to use TLS. So in the previous example we can replace nats with tls to get tls://demo.nats.io:4222.

                      +

                      The protocol requirement is being removed from many libraries, so that you can use demo.nats.io:4222 as the URL and let the client and server resolve whether or not TLS is required.

                      +

                      There are numerous options for a NATS connections ranging from timeouts to reconnect settings.

                      + + +
                      + +
                      +
                      +
                      + +

                      results matching ""

                      +
                        + +
                        +
                        + +

                        No results matching ""

                        + +
                        +
                        +
                        + +
                        +
                        + +
                        + + + + + + + + + + + + + + +
                        + + +
                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/name.md b/docs/developer/connecting/name.md new file mode 100644 index 0000000..b1dc56c --- /dev/null +++ b/docs/developer/connecting/name.md @@ -0,0 +1,5 @@ +# Setting the Connection Name + +Connections can be assigned a name which will appear in some of the server monitoring data. This name is not required but can help in debugging and testing. + +!INCLUDE "../../_examples/connect_name.html" \ No newline at end of file diff --git a/docs/developer/connecting/noecho.html b/docs/developer/connecting/noecho.html new file mode 100644 index 0000000..099dbfc --- /dev/null +++ b/docs/developer/connecting/noecho.html @@ -0,0 +1,2462 @@ + + + + + + + Turning Off Echo'd Messages ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        +
                        + + + + + + + + +
                        + +
                        + +
                        + + + + + + + + +
                        +
                        + +
                        +
                        + +
                        + +

                        Turning Off Echo'd Messages

                        +

                        By default the server will echo messages. This means that if a publisher on a connection sends a message to a subject any subscribers on that same connection may receive the message. Turning off echo is a fairly new feature for the NATS server, but some of the clients already support it.

                        +
                        +digraph { + rankdir=LR; + subgraph cluster_1 { + shape=box; + style="rounded"; + label = "Connection #1"; + + publisher [shape=box, style="rounded", label="Publisher"]; + subscriber_1 [shape=box, style="rounded", label="Subscriber"]; + } + subgraph cluster_2 { + shape=box; + style="rounded"; + label = "Connection #2"; + + subscriber_2 [shape=box, style="rounded", label="Subscriber"]; + } + + subject [shape=circle, label="Subject"]; + + publisher -> subject [label="msg"]; + subject -> subscriber_1 [label="echo'd msg", style="dashed"]; + subject -> subscriber_2 [label="msg"]; +} +
                        + +

                        Keep in mind that each connection will have to turn off echo, and that it is per connection, not per application. Also, turning echo on and off can result in a major change to your applications communications protocol since messages will flow or stop flowing based on this setting and the subscribing code won't have any indication as to why.

                        +
                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        +
                        // Turn off echo
                        +nc, err := nats.Connect("demo.nats.io", nats.NoEcho())
                        +if err != nil {
                        +	log.Fatal(err)
                        +}
                        +defer nc.Close()
                        +
                        +// Do something with the connection
                        +
                        +
                        +
                        + +
                        +
                        Options options = new Options.Builder().
                        +                            server("nats://demo.nats.io:4222").
                        +                            noEcho(). // Turn off echo
                        +                            build();
                        +Connection nc = Nats.connect(options);
                        +
                        +// Do something with the connection
                        +
                        +nc.close();
                        +
                        +
                        + +
                        +
                        // no_echo is not supported.
                        +
                        +
                        + +
                        +
                        ncA = NATS()
                        +ncB = NATS()
                        +
                        +await ncA.connect(no_echo=True)
                        +await ncB.connect()
                        +
                        +async def handler(msg):
                        +   # Messages sent by `ncA' will not be received.
                        +   print("[Received] ", msg)
                        +
                        +await ncA.subscribe("greetings", cb=handler)
                        +await ncA.flush()
                        +await ncA.publish("greetings", b'Hello World!')
                        +await ncB.publish("greetings", b'Hello World!')
                        +
                        +# Do something with the connection
                        +
                        +await asyncio.sleep(1)
                        +await ncA.drain()
                        +await ncB.drain()
                        +
                        +
                        +
                        + +
                        +
                        NATS.start("nats://demo.nats.io:4222", no_echo: true) do |nc|
                        +  # ...
                        +end
                        +
                        +
                        + +
                        +
                        let nc = await connect({
                        +    url: "nats://demo.nats.io:4222", noEcho: true});
                        +
                        +
                        + +
                        + +
                        + +
                        +
                        +
                        + +

                        results matching ""

                        +
                          + +
                          +
                          + +

                          No results matching ""

                          + +
                          +
                          +
                          + +
                          +
                          + +
                          + + + + + + + + + + + + + + +
                          + + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/pingpong.html b/docs/developer/connecting/pingpong.html new file mode 100644 index 0000000..eb73cde --- /dev/null +++ b/docs/developer/connecting/pingpong.html @@ -0,0 +1,2573 @@ + + + + + + + Ping/Pong Protocol ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +
                          + + + + + + + + +
                          + +
                          + +
                          + + + + + + + + +
                          +
                          + +
                          +
                          + +
                          + +

                          Ping/Pong Protocol

                          +

                          The client and server use a simple PING/PONG protocol to check that they are both still connected. The client will ping the server on a regular, configured interval so that the server usually doesn't have to initiate the PING/PONG interaction.

                          +
                          +digraph g { + rankdir=LR + client [shape=box, style="rounded", label="NATS Client"]; + gnatsd [shape=circle, label="gnatsd"]; + + client -> gnatsd [label="PING"]; + gnatsd -> client [label="PONG"]; +} +
                          + +

                          Set the Ping Interval

                          +

                          If you have a connection that is going to be open a long time with few messages traveling on it, setting this PING interval can control how quickly the client will be notified of a problem. However on connections with a lot of traffic, the client will often figure out there is a problem between PINGS, and as a result the default PING interval is often on the order of minutes. To set the interval to 20s:

                          +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +
                          // Set Ping Interval to 20 seconds
                          +nc, err := nats.Connect("demo.nats.io", nats.PingInterval(20*time.Second))
                          +if err != nil {
                          +	log.Fatal(err)
                          +}
                          +defer nc.Close()
                          +
                          +// Do something with the connection
                          +
                          +
                          +
                          + +
                          +
                          Options options = new Options.Builder().
                          +                            server("nats://demo.nats.io:4222").
                          +                            pingInterval(Duration.ofSeconds(20)). // Set Ping Interval
                          +                            build();
                          +Connection nc = Nats.connect(options);
                          +
                          +// Do something with the connection
                          +
                          +nc.close();
                          +
                          +
                          + +
                          +
                          let nc = NATS.connect({
                          +    pingInterval: 20*1000, //20s
                          +    url: "nats://demo.nats.io:4222"
                          +});
                          +
                          +
                          + +
                          +
                          nc = NATS()
                          +
                          +await nc.connect(
                          +   servers=["nats://demo.nats.io:4222"],
                          +   # Set Ping Interval to 20 seconds
                          +   ping_interval=20,
                          +   )
                          +
                          +# Do something with the connection.
                          +
                          +
                          +
                          + +
                          +
                          require 'nats/client'
                          +
                          +NATS.start(ping_interval: 20) do |nc|
                          +   nc.on_reconnect do
                          +    puts "Got reconnected to #{nc.connected_server}"
                          +  end
                          +
                          +  nc.on_disconnect do |reason|
                          +    puts "Got disconnected! #{reason}"
                          +  end
                          +
                          +  # Do something with the connection
                          +end
                          +
                          +
                          + +
                          +
                          // will throw an exception if connection fails
                          +let nc = await connect({
                          +    pingInterval: 20*2000, //20s
                          +    url: "nats://demo.nats.io:4222"
                          +});
                          +nc.close();
                          +
                          +
                          + +
                          +

                          Limit Outgoing Pings

                          +

                          The PING/PONG interaction is also used by most of the clients as a way to flush the connection to the server. Clients that cache outgoing messages provide a flush call that will run a PING/PONG. The flush will wait for the PONG to return, telling it that all cached messages have been processed, including the PING. The number of cached PING requests can be limited in most clients to insure that traffic problems are identified early. This configuration for max outgoing pings or similar will usually default to a small number and should only be increased if you are worried about fast flush traffic, perhaps in multiple threads.

                          +

                          For example, to set the maximum number of outgoing pings to 5:

                          +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +
                          opts := nats.GetDefaultOptions()
                          +opts.Url = "demo.nats.io"
                          +// 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
                          +
                          +
                          +
                          + +
                          +
                          Options options = new Options.Builder().
                          +                            server("nats://demo.nats.io:4222").
                          +                            maxPingsOut(5). // Set max pings in flight
                          +                            build();
                          +Connection nc = Nats.connect(options);
                          +
                          +// Do something with the connection
                          +
                          +nc.close();
                          +
                          +
                          + +
                          +
                          let nc = NATS.connect({
                          +    maxPingOut: 5,
                          +    url: "nats://demo.nats.io:4222"
                          +});
                          +
                          +
                          + +
                          +
                          nc = NATS()
                          +
                          +await nc.connect(
                          +   servers=["nats://demo.nats.io:4222"],
                          +   # 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.
                          +
                          +
                          +
                          + +
                          +
                          require 'nats/client'
                          +
                          +NATS.start(max_outstanding_pings: 5) do |nc|
                          +   nc.on_reconnect do
                          +    puts "Got reconnected to #{nc.connected_server}"
                          +  end
                          +
                          +  nc.on_disconnect do |reason|
                          +    puts "Got disconnected! #{reason}"
                          +  end
                          +
                          +  # Do something with the connection
                          +end
                          +
                          +
                          + +
                          +
                          // will throw an exception if connection fails
                          +let nc = await connect({
                          +    maxPingOut: 5,
                          +    url: "nats://demo.nats.io:4222"
                          +});
                          +nc.close();
                          +
                          +
                          + +
                          + +
                          + +
                          +
                          +
                          + +

                          results matching ""

                          +
                            + +
                            +
                            + +

                            No results matching ""

                            + +
                            +
                            +
                            + +
                            +
                            + +
                            + + + + + + + + + + + + + + +
                            + + +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/protocol.html b/docs/developer/connecting/protocol.html new file mode 100644 index 0000000..ecd4c3b --- /dev/null +++ b/docs/developer/connecting/protocol.html @@ -0,0 +1,2753 @@ + + + + + + + Controlling the Client/Server Protocol ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            + + + + + + + + +
                            + +
                            + +
                            + + + + + + + + +
                            +
                            + +
                            +
                            + +
                            + +

                            Controlling the Client/Server Protocol

                            +

                            The protocol between the client and the server is fairly simple and relies on a control line and sometimes a body. The control line contains the operations being sent, like PING or PONG, followed by a carriage return and line feed, CRLF or "\r\n". The server has a setting that can limit the maximum size of a control line. For PING and PONG this doesn't come into play, but for messages that contain subject names, the control line length can be important. The server is also configured with a maximum payload size, which limits the size of a message body. The server sends the maximum payload size to the client at connect time but doesn't currently tell the client the maximum control line size.

                            +

                            Set the Maximum Control Line Size

                            +

                            Some clients will try to limit the control line size internally to prevent an error from the server. These clients may or may not allow you to set the size being used, but if they do, the size should be set to match the server configuration.

                            +

                            For example, to set the maximum control line size to 2k:

                            +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            // This does not apply to the NATS Go Client
                            +
                            +
                            + +
                            +
                            Options options = new Options.Builder().
                            +                            server("nats://demo.nats.io:4222").
                            +                            maxControlLine(2 * 1024). // Set the max control line to 2k
                            +                            build();
                            +Connection nc = Nats.connect(options);
                            +
                            +// Do something with the connection
                            +
                            +nc.close();
                            +
                            +
                            + +
                            +
                            // set this option before creating a connection
                            +NATS.MAX_CONTROL_LINE_SIZE = 1024*2;
                            +let nc = NATS.connect({
                            +    url: "nats://demo.nats.io:4222"
                            +});
                            +
                            +
                            +
                            + +
                            +
                            # Asyncio NATS client does not allow custom control lines
                            +
                            +
                            + +
                            +
                            # There is no need to customize this in the Ruby NATS client.
                            +
                            +
                            + +
                            +
                            // control line size is not configurable on ts-nats
                            +
                            +
                            + +
                            +

                            Get the Maximum Payload Size

                            +

                            While the client can't control the maximum payload size, clients may provide a way for applications to get the size after the connection is made. This will allow the application to chunk or limit data as needed to pass through the server.

                            +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            nc, err := nats.Connect("demo.nats.io")
                            +if err != nil {
                            +	log.Fatal(err)
                            +}
                            +defer nc.Close()
                            +
                            +mp := nc.MaxPayload()
                            +log.Printf("Maximum payload is %v bytes", mp)
                            +
                            +// Do something with the max payload
                            +
                            +
                            +
                            + +
                            +
                            Connection nc = Nats.connect("nats://demo.nats.io:4222");
                            +
                            +long max = nc.getMaxPayload();
                            +// Do something with the max payload
                            +
                            +nc.close();
                            +
                            +
                            + +
                            +
                            let nc = NATS.connect("nats://demo.nats.io:4222");
                            +
                            +// on node you *must* register an error listener. If not registered
                            +// the library emits an 'error' event, the node process will exit.
                            +nc.on('error', (err) => {
                            +    t.log('client got an error:', err);
                            +});
                            +nc.on('connect', () => {
                            +   t.log(nc.info.max_payload);
                            +});
                            +
                            +
                            + +
                            +
                            nc = NATS()
                            +
                            +await nc.connect(servers=["nats://demo.nats.io:4222"])
                            +
                            +print("Maximum payload is %d bytes" % nc.max_payload)
                            +
                            +# Do something with the max payload.
                            +
                            +
                            +
                            + +
                            +
                            require 'nats/client'
                            +
                            +NATS.start(max_outstanding_pings: 5) do |nc|
                            +   nc.on_reconnect do
                            +    puts "Got reconnected to #{nc.connected_server}"
                            +  end
                            +
                            +  nc.on_disconnect do |reason|
                            +    puts "Got disconnected! #{reason}"
                            +  end
                            +
                            +  # Do something with the max_payload
                            +  puts "Maximum Payload is #{nc.server_info[:max_payload]} bytes"
                            +end
                            +
                            +
                            + +
                            +
                            // connect will happen once - the first connect
                            +nc.on('connect', (nc: Client, url: string, options: ServerInfo) => {
                            +    // nc is the connection that connected
                            +    t.log('client connected to', url);
                            +    t.log('max_payload', options.max_payload);
                            +});
                            +
                            +
                            + +
                            +

                            Turn On Pedantic Mode

                            +

                            The NATS server provides a pedantic mode that does extra checks on the protocol. By default, this setting is off but you can turn it on:

                            +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            opts := nats.GetDefaultOptions()
                            +opts.Url = "demo.nats.io"
                            +// Turn on Pedantic
                            +opts.Pedantic = true
                            +nc, err := opts.Connect()
                            +if err != nil {
                            +	log.Fatal(err)
                            +}
                            +defer nc.Close()
                            +
                            +// Do something with the connection
                            +
                            +
                            +
                            + +
                            +
                            Options options = new Options.Builder().
                            +                            server("nats://demo.nats.io:4222").
                            +                            pedantic(). // Turn on pedantic
                            +                            build();
                            +Connection nc = Nats.connect(options);
                            +
                            +// Do something with the connection
                            +
                            +nc.close();
                            +
                            +
                            + +
                            +
                            let nc = NATS.connect({
                            +    url: "nats://demo.nats.io:4222",
                            +    pedantic: true
                            +});
                            +
                            +
                            +
                            + +
                            +
                            nc = NATS()
                            +
                            +await nc.connect(servers=["nats://demo.nats.io:4222"], pedantic=True)
                            +
                            +# Do something with the connection.
                            +
                            +
                            +
                            + +
                            +
                            require 'nats/client'
                            +
                            +NATS.start(pedantic: true) do |nc|
                            +   nc.on_reconnect do
                            +    puts "Got reconnected to #{nc.connected_server}"
                            +  end
                            +
                            +  nc.on_disconnect do |reason|
                            +    puts "Got disconnected! #{reason}"
                            +  end
                            +
                            +  nc.close
                            +end
                            +
                            +
                            + +
                            +
                            // will throw an exception if connection fails
                            +let nc = await connect({
                            +    url: "nats://demo.nats.io:4222",
                            +    pedantic: true
                            +});
                            +
                            +nc.close();
                            +
                            +
                            + +
                            +

                            Turn On/Off Verbose Mode

                            +

                            The NATS server also provide a verbose mode. By default, verbose mode is enabled and the server will reply to every message from the client with either a +OK or a -ERR. Most clients turn off verbose mode, which disables all of the +OK traffic. Errors are rarely subject to verbose mode and client libraries handle them as documented. To turn on verbose mode, likely for testing:

                            +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            opts := nats.GetDefaultOptions()
                            +opts.Url = "demo.nats.io"
                            +// Turn on Verbose
                            +opts.Verbose = true
                            +nc, err := opts.Connect()
                            +if err != nil {
                            +	log.Fatal(err)
                            +}
                            +defer nc.Close()
                            +
                            +// Do something with the connection
                            +
                            +
                            +
                            + +
                            +
                            Options options = new Options.Builder().
                            +                            server("nats://demo.nats.io:4222").
                            +                            verbose(). // Turn on verbose
                            +                            build();
                            +Connection nc = Nats.connect(options);
                            +
                            +// Do something with the connection
                            +
                            +nc.close();
                            +
                            +
                            + +
                            +
                            let nc = NATS.connect({
                            +    url: "nats://demo.nats.io:4222",
                            +    verbose: true
                            +});
                            +
                            +
                            +
                            + +
                            +
                            nc = NATS()
                            +
                            +await nc.connect(servers=["nats://demo.nats.io:4222"], verbose=True)
                            +
                            +# Do something with the connection.
                            +
                            +
                            +
                            + +
                            +
                            require 'nats/client'
                            +
                            +NATS.start(verbose: true) do |nc|
                            +   nc.on_reconnect do
                            +    puts "Got reconnected to #{nc.connected_server}"
                            +  end
                            +
                            +  nc.on_disconnect do |reason|
                            +    puts "Got disconnected! #{reason}"
                            +  end
                            +
                            +  nc.close
                            +end
                            +
                            +
                            + +
                            +
                            // will throw an exception if connection fails
                            +let nc = await connect({
                            +    url: "nats://demo.nats.io:4222",
                            +    verbose: true
                            +});
                            +
                            +nc.close();
                            +
                            +
                            + +
                            + +
                            + +
                            +
                            +
                            + +

                            results matching ""

                            +
                              + +
                              +
                              + +

                              No results matching ""

                              + +
                              +
                              +
                              + +
                              +
                              + +
                              + + + + + + + + + + + + + + +
                              + + +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/connecting/specific_server.html b/docs/developer/connecting/specific_server.html new file mode 100644 index 0000000..65bd7fd --- /dev/null +++ b/docs/developer/connecting/specific_server.html @@ -0,0 +1,2439 @@ + + + + + + + Connecting to a Specific Server ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                              +
                              + + + + + + + + +
                              + +
                              + +
                              + + + + + + + + +
                              +
                              + +
                              +
                              + +
                              + +

                              Connecting to a Specific Server

                              +

                              The NATS client libraries can take a full URL, nats://demo.nats.io:4222, to specify a specific server host and port to connect to.

                              +

                              Libraries are removing the requirement for an explicit protocol and may allow nats://demo.nats.io:4222 or just demo.nats.io:4222. Check with your specific client library's documentation to see what URL formats are supported.

                              +

                              For example, to connect to the demo server with a URL you can use:

                              +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                              +
                              // 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("nats://demo.nats.io:4222")
                              +nc, err := nats.Connect("demo.nats.io")
                              +if err != nil {
                              +	log.Fatal(err)
                              +}
                              +defer nc.Close()
                              +
                              +// Do something with the connection
                              +
                              +
                              +
                              + +
                              +
                              Connection nc = Nats.connect("nats://demo.nats.io:4222");
                              +
                              +// Do something with the connection
                              +
                              +nc.close();
                              +
                              +
                              + +
                              +
                              let nc = NATS.connect("nats://demo.nats.io:4222");
                              +nc.on('connect', (c) => {
                              +    // Do something with the connection
                              +    doSomething();
                              +    // When done close it
                              +    nc.close();
                              +});
                              +nc.on('error', (err) => {
                              +    failed(err);
                              +});
                              +
                              +
                              + +
                              +
                              nc = NATS()
                              +await nc.connect(servers=["nats://demo.nats.io:4222"])
                              +
                              +# Do something with the connection
                              +
                              +await nc.close()
                              +
                              +
                              +
                              + +
                              +
                              require 'nats/client'
                              +
                              +NATS.start(servers: ["nats://demo.nats.io:4222"]) do |nc|
                              +   # Do something with the connection
                              +
                              +   # Close the connection
                              +   nc.close
                              +end
                              +
                              +
                              + +
                              +
                              // will throw an exception if connection fails
                              +    let nc = await connect("nats://demo.nats.io:4222");
                              +    // Do something with the connection
                              +
                              +    // Close the connection
                              +    nc.close();
                              +
                              +
                              + +
                              + +
                              + +
                              +
                              +
                              + +

                              results matching ""

                              +
                                + +
                                +
                                + +

                                No results matching ""

                                + +
                                +
                                +
                                + +
                                +
                                + +
                                + + + + + + + + + + + + + + +
                                + + +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/events/events.html b/docs/developer/events/events.html new file mode 100644 index 0000000..bb4b0e4 --- /dev/null +++ b/docs/developer/events/events.html @@ -0,0 +1,2761 @@ + + + + + + + Listen for Connection Events ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                +
                                + + + + + + + + +
                                + +
                                + +
                                + + + + + + + + +
                                +
                                + +
                                +
                                + +
                                + +

                                Listen for Connection Events

                                +

                                While the connection status is interesting, it is perhaps more interesting to know when the status changes. Most, if not all, of the NATS client libraries provide a way to listen for events related to the connection and its status.

                                +

                                The actual API for these listeners is language dependent, but the following examples show a few of the more common use cases. See the API documentation for the client library you are using for more specific instructions.

                                +

                                Connection events may include the connection being closed, disconnected or reconnected. Reconnecting involves a disconnect and connect, but depending on the library implementation may also include multiple disconnects as the client tries to find a server, or the server is rebooted.

                                +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                +
                                // 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)
                                +
                                +
                                + +
                                +
                                class MyConnectionListener implements ConnectionListener {
                                +    public void connectionEvent(Connection natsConnection, Events event) {
                                +        System.out.println("Connection event - "+event);
                                +    }
                                +}
                                +
                                +public class SetConnectionListener {
                                +    public static void main(String[] args) {
                                +
                                +        try {
                                +            Options options = new Options.Builder().
                                +                                        server("nats://demo.nats.io:4222").
                                +                                        connectionListener(new MyConnectionListener()). // Set the listener
                                +                                        build();
                                +            Connection nc = Nats.connect(options);
                                +
                                +            // Do something with the connection
                                +
                                +            nc.close();
                                +        } catch (Exception e) {
                                +            e.printStackTrace();
                                +        }
                                +    }
                                +}
                                +
                                +
                                + +
                                +
                                let nc = NATS.connect("nats://demo.nats.io:4222");
                                +
                                +nc.on('error', (err) => {
                                +    t.log('error', err);
                                +});
                                +
                                +nc.on('connect', () => {
                                +    t.log('client connected');
                                +});
                                +
                                +nc.on('disconnect', () => {
                                +    t.log('client disconnected');
                                +});
                                +
                                +nc.on('reconnecting', () => {
                                +    t.log('client reconnecting');
                                +});
                                +
                                +nc.on('reconnect', () => {
                                +    t.log('client reconnected');
                                +});
                                +
                                +nc.on('close', () => {
                                +    t.log('client closed');
                                +});
                                +
                                +nc.on('permission_error', (err) => {
                                +    t.log('permission_error', err);
                                +});
                                +
                                +
                                + +
                                +
                                # Asyncio NATS client can be defined a number of event callbacks
                                +async def disconnected_cb():
                                +    print("Got disconnected!")
                                +
                                +async def reconnected_cb():
                                +    # See who we are connected to on reconnect.
                                +    print("Got reconnected to {url}".format(url=nc.connected_url.netloc))
                                +
                                +async def error_cb(e):
                                +    print("There was an error: {}".format(e))
                                +
                                +async def closed_cb():
                                +    print("Connection is closed")
                                +
                                +# Setup callbacks to be notified on disconnects and reconnects
                                +options["disconnected_cb"] = disconnected_cb
                                +options["reconnected_cb"] = reconnected_cb
                                +
                                +# Setup callbacks to be notified when there is an error
                                +# or connection is closed.
                                +options["error_cb"] = error_cb
                                +options["closed_cb"] = closed_cb
                                +
                                +await nc.connect(**options)
                                +
                                +
                                + +
                                +
                                # 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
                                +
                                +
                                + +
                                +
                                // connect will happen once - the first connect
                                +nc.on('connect', (nc) => {
                                +    // nc is the connection that connected
                                +    t.log('client connected');
                                +});
                                +
                                +nc.on('disconnect', (url) => {
                                +    // nc is the connection that reconnected
                                +    t.log('disconnected from', url);
                                +});
                                +
                                +nc.on('reconnecting', (url) => {
                                +    t.log('reconnecting to', url);
                                +});
                                +
                                +nc.on('reconnect', (nc, url) => {
                                +    // nc is the connection that reconnected
                                +    t.log('reconnected to', url);
                                +});
                                +
                                +
                                + +
                                +

                                Listen for New Servers

                                +

                                When working with a cluster, servers may be added or changed. Some of the clients allow you to listen for this notification:

                                +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                +
                                // 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("demo.nats.io",
                                +	nats.DiscoveredServersHandler(func(nc *nats.Conn) {
                                +		log.Printf("Known servers: %v\n", nc.Servers())
                                +		log.Printf("Discovered servers: %v\n", nc.DiscoveredServers())
                                +	}))
                                +if err != nil {
                                +	log.Fatal(err)
                                +}
                                +defer nc.Close()
                                +
                                +// Do something with the connection
                                +
                                +
                                +
                                + +
                                +
                                class ServersAddedListener implements ConnectionListener {
                                +    public void connectionEvent(Connection nc, Events event) {
                                +        if (event == Events.DISCOVERED_SERVERS) {
                                +            for (String server : nc.getServers()) {
                                +                System.out.println("Known server: "+server);
                                +            }
                                +        }
                                +    }
                                +}
                                +
                                +public class ListenForNewServers {
                                +    public static void main(String[] args) {
                                +
                                +        try {
                                +            Options options = new Options.Builder().
                                +                                        server("nats://demo.nats.io:4222").
                                +                                        connectionListener(new ServersAddedListener()). // Set the listener
                                +                                        build();
                                +            Connection nc = Nats.connect(options);
                                +
                                +            // Do something with the connection
                                +
                                +            nc.close();
                                +        } catch (Exception e) {
                                +            e.printStackTrace();
                                +        }
                                +    }
                                +}
                                +
                                +
                                + +
                                +
                                let nc = NATS.connect("nats://demo.nats.io:4222");
                                +nc.on('serversDiscovered', (urls) => {
                                +    t.log('serversDiscovered', urls);
                                +});
                                +
                                +
                                + +
                                +
                                # Asyncio NATS client does not support discovered servers handler right now
                                +
                                +
                                + +
                                +
                                # The Ruby NATS client does not support discovered servers handler right now
                                +
                                +
                                + +
                                +
                                nc.on('serversChanged', (ce) => {
                                +    t.log('servers changed\n', 'added: ',ce.added, 'removed:', ce.removed);
                                +});
                                +
                                +
                                + +
                                +

                                Listen for Errors

                                +

                                The client library may separate server-to-client errors from events. Many server events are not handled by application code and result in the connection being closed. Listening for the errors can be very useful for debugging problems.

                                +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                +
                                // Set the callback that will be invoked when an asynchronous error occurs.
                                +nc, err := nats.Connect("demo.nats.io",
                                +	nats.ErrorHandler(func(nc *nats.Conn, sub *nats.Subscription, err error) {
                                +		log.Printf("Error: %v", err)
                                +	}))
                                +if err != nil {
                                +	log.Fatal(err)
                                +}
                                +defer nc.Close()
                                +
                                +// Do something with the connection
                                +
                                +
                                +
                                + +
                                +
                                class MyErrorListener implements ErrorListener {
                                +    public void errorOccurred(Connection conn, String error)
                                +    {
                                +        System.out.println("The server notificed the client with: "+error);
                                +    }
                                +
                                +    public void exceptionOccurred(Connection conn, Exception exp) {
                                +        System.out.println("The connection handled an exception: "+exp.getLocalizedMessage());
                                +    }
                                +
                                +    public void slowConsumerDetected(Connection conn, Consumer consumer) {
                                +        System.out.println("A slow consumer was detected.");
                                +    }
                                +}
                                +
                                +public class SetErrorListener {
                                +    public static void main(String[] args) {
                                +
                                +        try {
                                +            Options options = new Options.Builder().
                                +                                        server("nats://demo.nats.io:4222").
                                +                                        errorListener(new MyErrorListener()). // Set the listener
                                +                                        build();
                                +            Connection nc = Nats.connect(options);
                                +
                                +            // Do something with the connection
                                +
                                +            nc.close();
                                +        } catch (Exception e) {
                                +            e.printStackTrace();
                                +        }
                                +    }
                                +}
                                +
                                +
                                + +
                                +
                                let nc = NATS.connect("nats://demo.nats.io:4222");
                                +
                                +// on node you *must* register an error listener. If not registered
                                +// the library emits an 'error' event, the node process will exit.
                                +nc.on('error', (err) => {
                                +    t.log('client got an error:', err);
                                +});
                                +
                                +
                                + +
                                +
                                nc = NATS()
                                +
                                +async def error_cb(e):
                                +   print("Error: ", e)
                                +
                                +await nc.connect(
                                +   servers=["nats://demo.nats.io:4222"],
                                +   reconnect_time_wait=10,
                                +   error_cb=error_cb,
                                +   )
                                +
                                +# Do something with the connection.
                                +
                                +
                                +
                                + +
                                +
                                require 'nats/client'
                                +
                                +NATS.start(servers:["nats://demo.nats.io:4222"]) do |nc|
                                +   nc.on_error do |e|
                                +    puts "Error: #{e}"
                                +  end
                                +
                                +  nc.close
                                +end
                                +
                                +
                                + +
                                +
                                // on node you *must* register an error listener. If not registered
                                +// the library emits an 'error' event, the node process will exit.
                                +nc.on('error', (err) => {
                                +    t.log('client got an out of band error:', err);
                                +});
                                +
                                +
                                + +
                                + +
                                + +
                                +
                                +
                                + +

                                results matching ""

                                +
                                  + +
                                  +
                                  + +

                                  No results matching ""

                                  + +
                                  +
                                  +
                                  + +
                                  +
                                  + +
                                  + + + + + + + + + + + + + + +
                                  + + +
                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/events/intro.html b/docs/developer/events/intro.html new file mode 100644 index 0000000..9cb6039 --- /dev/null +++ b/docs/developer/events/intro.html @@ -0,0 +1,2474 @@ + + + + + + + Monitoring the Connection ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  +
                                  + + + + + + + + +
                                  + +
                                  + +
                                  + + + + + + + + +
                                  +
                                  + +
                                  +
                                  + +
                                  + +

                                  Monitoring the Connection

                                  +

                                  Managing the interaction with the server is primarily the job of the client library but most of the libraries also provide some insight into what is happening under the covers.

                                  +

                                  For example, the client library may provide a mechanism to get the connection's current status:

                                  +
                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  +
                                  nc, err := nats.Connect("demo.nats.io")
                                  +if err != nil {
                                  +	log.Fatal(err)
                                  +}
                                  +defer nc.Close()
                                  +
                                  +getStatusTxt := func(nc *nats.Conn) string {
                                  +	switch nc.Status() {
                                  +	case nats.CONNECTED:
                                  +		return "Connected"
                                  +	case nats.CLOSED:
                                  +		return "Closed"
                                  +	default:
                                  +		return "Other"
                                  +	}
                                  +}
                                  +log.Printf("The connection is %v\n", getStatusTxt(nc))
                                  +
                                  +nc.Close()
                                  +
                                  +log.Printf("The connection is %v\n", getStatusTxt(nc))
                                  +
                                  +
                                  +
                                  + +
                                  +
                                  Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                  +
                                  +System.out.println("The Connection is: " + nc.getStatus());
                                  +
                                  +nc.close();
                                  +
                                  +System.out.println("The Connection is: " + nc.getStatus());
                                  +
                                  +
                                  + +
                                  +
                                  let nc = NATS.connect("nats://demo.nats.io:4222");
                                  +
                                  +// on node you *must* register an error listener. If not registered
                                  +// the library emits an 'error' event, the node process will exit.
                                  +nc.on('error', (err) => {
                                  +    t.log('client got an error:', err);
                                  +});
                                  +
                                  +if(nc.closed) {
                                  +    t.log('client is closed');
                                  +} else {
                                  +    t.log('client is not closed');
                                  +}
                                  +
                                  +
                                  + +
                                  +
                                  nc = NATS()
                                  +
                                  +await nc.connect(
                                  +   servers=["nats://demo.nats.io:4222"],
                                  +   )
                                  +
                                  +# Do something with the connection.
                                  +
                                  +print("The connection is connected?", nc.is_connected)
                                  +
                                  +while True:
                                  +  if nc.is_reconnecting:
                                  +    print("Reconnecting to NATS...")
                                  +    break
                                  +  await asyncio.sleep(1)
                                  +
                                  +await nc.close()
                                  +
                                  +print("The connection is closed?", nc.is_closed)
                                  +
                                  +
                                  +
                                  + +
                                  +
                                  NATS.start(max_reconnect_attempts: 2) do |nc|
                                  +  puts "Connect is connected?: #{nc.connected?}"
                                  +
                                  +  timer = EM.add_periodic_timer(1) do
                                  +    if nc.closing?
                                  +      puts "Connection closed..."
                                  +      EM.cancel_timer(timer)
                                  +      NATS.stop
                                  +    end
                                  +
                                  +    if nc.reconnecting?
                                  +      puts "Reconnecting to NATS..."
                                  +      next
                                  +    end
                                  +  end
                                  +end
                                  +
                                  +
                                  +
                                  + +
                                  +
                                  if(nc.isClosed()) {
                                  +    t.log('the client is closed');
                                  +} else {
                                  +    t.log('the client is running');
                                  +}
                                  +
                                  +
                                  + +
                                  + +
                                  + +
                                  +
                                  +
                                  + +

                                  results matching ""

                                  +
                                    + +
                                    +
                                    + +

                                    No results matching ""

                                    + +
                                    +
                                    +
                                    + +
                                    +
                                    + +
                                    + + + + + + + + + + + + + + +
                                    + + +
                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/events/slow.html b/docs/developer/events/slow.html new file mode 100644 index 0000000..dee180a --- /dev/null +++ b/docs/developer/events/slow.html @@ -0,0 +1,2620 @@ + + + + + + + Slow Consumers ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    +
                                    + + + + + + + + +
                                    + +
                                    + +
                                    + + + + + + + + +
                                    +
                                    + +
                                    +
                                    + +
                                    + +

                                    Slow Consumers

                                    +

                                    NATS is designed to move messages through the server quickly. As a result, NATS depends on the applications to consider and respond to changing message rates. The server will do a bit of impedance matching, but if a client is too slow the server will eventually cut them off. These cut off connections are called slow consumers.

                                    +

                                    One way some of the libraries deal with bursty message traffic is to cache incoming messages for a subscription. So if an application can handle 10 messages per second and sometimes receives 20 messages per second, the library may hold the extra 10 to give the application time to catch up. To the server, the application will appear to be handling the messages and consider the connection healthy. It is up to the client library to decide what to do when the cache is too big, but most client libraries will drop incoming messages.

                                    +

                                    Receiving and dropping messages from the server keeps the connection to the server healthy, but creates an application requirement. There are several common patterns:

                                    +
                                      +
                                    • Use request/reply to throttle the sender and prevent overloading the subscriber
                                    • +
                                    • Use a queue with multiple subscribers splitting the work
                                    • +
                                    • Persist messages with something like NATS streaming
                                    • +
                                    +

                                    Libraries that cache incoming messages may provide two controls on the incoming queue, or pending messages. These are useful if the problem is bursty publishers and not a continuous performance mismatch. Disabling these limits can be dangerous in production and although setting these limits to 0 may help find problems, it is also a dangerous proposition in production.

                                    +
                                    +

                                    Check your libraries documentation for the default settings, and support for disabling these limits.

                                    +
                                    +

                                    The incoming cache is usually per subscriber, but again, check the specific documentation for your client library.

                                    +

                                    Limiting Incoming/Pending Messages by Count and Bytes

                                    +

                                    The first way that the incoming queue can be limited is by message count. The second way to limit the incoming queue is by total size. For example, to limit the incoming cache to 1,000 messages or 5mb whichever comes first:

                                    +
                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    +
                                    nc, err := nats.Connect("demo.nats.io")
                                    +if err != nil {
                                    +	log.Fatal(err)
                                    +}
                                    +defer nc.Close()
                                    +
                                    +// Subscribe
                                    +sub1, err := nc.Subscribe("updates", 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("updates", 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()
                                    +
                                    +
                                    + +
                                    +
                                    Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                    +
                                    +Dispatcher d = nc.createDispatcher((msg) -> {
                                    +    // do something
                                    +});
                                    +
                                    +d.subscribe("updates");
                                    +
                                    +d.setPendingLimits(1_000, 5 * 1024 * 1024); // Set limits on a dispatcher
                                    +
                                    +// Subscribe
                                    +Subscription sub = nc.subscribe("updates");
                                    +
                                    +sub.setPendingLimits(1_000, 5 * 1024 * 1024); // Set limits on a subscription
                                    +
                                    +// Do something
                                    +
                                    +// Close the connection
                                    +nc.close();
                                    +
                                    +
                                    + +
                                    +
                                    // slow pending limits are not configurable on node-nats
                                    +
                                    +
                                    + +
                                    +
                                    nc = NATS()
                                    +
                                    +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                    +
                                    +future = asyncio.Future()
                                    +
                                    +async def cb(msg):
                                    +  nonlocal future
                                    +  future.set_result(msg)
                                    +
                                    +# Set limits of 1000 messages or 5MB
                                    +await nc.subscribe("updates", cb=cb, pending_bytes_limit=5*1024*1024, pending_msgs_limit=1000)
                                    +
                                    +
                                    +
                                    + +
                                    +
                                    # The Ruby NATS client currently does not have option to customize slow consumer limits per sub.
                                    +
                                    +
                                    + +
                                    +
                                    // slow pending limits are not configurable on ts-nats
                                    +
                                    +
                                    + +
                                    +

                                    Detect a Slow Consumer and Check for Dropped Messages

                                    +

                                    When a slow consumer is detected and messages are about to be dropped, the library may notify the application. This process may be similar to other errors or may involve a custom callback.

                                    +

                                    Some libraries, like Java, will not send this notification on every dropped message because that could be noisy. Rather the notification may be sent once per time the subscriber gets behind. Libraries may also provide a way to get a count of dropped messages so that applications can at least detect a problem is occurring.

                                    +
                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    +
                                    // Set the callback that will be invoked when an asynchronous error occurs.
                                    +nc, err := nats.Connect("demo.nats.io",
                                    +	nats.ErrorHandler(func(nc *nats.Conn, sub *nats.Subscription, err error) {
                                    +		if err == nats.ErrSlowConsumer {
                                    +			dropped, _ := sub.Dropped()
                                    +			log.Printf("Slow consumer on subject %s dropped %d messages\n",
                                    +				sub.Subject, dropped)
                                    +		}
                                    +	}))
                                    +if err != nil {
                                    +	log.Fatal(err)
                                    +}
                                    +defer nc.Close()
                                    +
                                    +// Do something with the connection
                                    +
                                    +
                                    +
                                    + +
                                    +
                                    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("A slow consumer dropped messages: "+ consumer.getDroppedCount());
                                    +    }
                                    +}
                                    +
                                    +public class SlowConsumerListener {
                                    +    public static void main(String[] args) {
                                    +
                                    +        try {
                                    +            Options options = new Options.Builder().
                                    +                                        server("nats://demo.nats.io:4222").
                                    +                                        errorListener(new SlowConsumerReporter()). // Set the listener
                                    +                                        build();
                                    +            Connection nc = Nats.connect(options);
                                    +
                                    +            // Do something with the connection
                                    +
                                    +            nc.close();
                                    +        } catch (Exception e) {
                                    +            e.printStackTrace();
                                    +        }
                                    +    }
                                    +}
                                    +
                                    +
                                    + +
                                    +
                                    // slow consumer detection is not configurable on node-nats
                                    +
                                    +
                                    + +
                                    +
                                    
                                    +   nc = NATS()
                                    +
                                    +   async def error_cb(e):
                                    +     if type(e) is nats.aio.errors.ErrSlowConsumer:
                                    +       print("Slow consumer error, unsubscribing from handling further messages...")
                                    +       await nc.unsubscribe(e.sid)
                                    +
                                    +   await nc.connect(
                                    +      servers=["nats://demo.nats.io:4222"],
                                    +      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("updates", cb=cb, pending_msgs_limit=5)
                                    +
                                    +   for i in range(0, 10):
                                    +     await nc.publish("updates", "msg #{}".format(i).encode())
                                    +     await asyncio.sleep(0)
                                    +
                                    +   try:
                                    +     await asyncio.wait_for(future, 1)
                                    +   except asyncio.TimeoutError:
                                    +     pass
                                    +
                                    +   for msg in msgs:
                                    +     print("[Received]", msg)
                                    +
                                    +   await nc.close()
                                    +
                                    +
                                    +
                                    + +
                                    +
                                    # The Ruby NATS client currently does not have option to customize slow consumer limits per sub.
                                    +
                                    +
                                    + +
                                    +
                                    // slow consumer detection is not configurable on ts-nats
                                    +
                                    +
                                    + +
                                    + +
                                    + +
                                    +
                                    +
                                    + +

                                    results matching ""

                                    +
                                      + +
                                      +
                                      + +

                                      No results matching ""

                                      + +
                                      +
                                      +
                                      + +
                                      +
                                      + +
                                      + + + + + + + + + + + + + + +
                                      + + +
                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/index.html b/docs/developer/index.html new file mode 100644 index 0000000..85beee5 --- /dev/null +++ b/docs/developer/index.html @@ -0,0 +1,2362 @@ + + + + + + + Introduction ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                      +
                                      + + + + + + + + +
                                      + +
                                      + +
                                      + + + + + + + + +
                                      +
                                      + +
                                      +
                                      + +
                                      + +

                                      Developing with NATS

                                      +

                                      Developing with NATS is a combination of distributed application techniques, common NATS features and library specific syntax. As well as using this book for guidance, some of the libraries contain language-familiar formats of their API. For example, the go library has go doc, and the Java library has javadoc.

                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                      LibraryDoc Link
                                      nats.gogodoc
                                      nats.javajavadoc
                                      nats.netdoxygen
                                      nats.rbyard
                                      nats.tsts-doc
                                      +

                                      Not all libraries contain this separate doc, depending on the language community, but be sure to check out the client libraries README for more information.

                                      + + +
                                      + +
                                      +
                                      +
                                      + +

                                      results matching ""

                                      +
                                        + +
                                        +
                                        + +

                                        No results matching ""

                                        + +
                                        +
                                        +
                                        + +
                                        +
                                        + +
                                        + + + + + + + + + + + + + + +
                                        + + +
                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/async.html b/docs/developer/receiving/async.html new file mode 100644 index 0000000..a90bea5 --- /dev/null +++ b/docs/developer/receiving/async.html @@ -0,0 +1,2470 @@ + + + + + + + Asynchronous Subscriptions ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                        +
                                        + + + + + + + + +
                                        + +
                                        + +
                                        + + + + + + + + +
                                        +
                                        + +
                                        +
                                        + +
                                        + +

                                        Asynchronous Subscriptions

                                        +

                                        Asynchronous subscriptions use callbacks of some form to notify an application when a message arrives. These subscriptions are usually easier to work with, but do represent some form of internal work and resource usage, i.e. threads, by the library. Check your library's documentation for any resource usage associated with asynchronous subscriptions.

                                        +

                                        The following example subscribes to the subject updates and handles the incoming messages:

                                        +
                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                        +
                                        nc, err := nats.Connect("demo.nats.io")
                                        +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("updates", 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()
                                        +
                                        +
                                        + +
                                        +
                                        Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                        +
                                        +// 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) -> {
                                        +    String str = new String(msg.getData(), StandardCharsets.UTF_8);
                                        +    System.out.println(str);
                                        +    latch.countDown();
                                        +});
                                        +
                                        +// Subscribe
                                        +d.subscribe("updates");
                                        +
                                        +// Wait for a message to come in
                                        +latch.await(); 
                                        +
                                        +// Close the connection
                                        +nc.close();
                                        +
                                        +
                                        + +
                                        +
                                        nc.subscribe("updates", (msg) => {
                                        +    t.log(msg);
                                        +});
                                        +
                                        +
                                        + +
                                        +
                                        nc = NATS()
                                        +
                                        +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                        +
                                        +future = asyncio.Future()
                                        +
                                        +async def cb(msg):
                                        +  nonlocal future
                                        +  future.set_result(msg)
                                        +
                                        +await nc.subscribe("updates", cb=cb)
                                        +await nc.publish("updates", b'All is Well')
                                        +await nc.flush()
                                        +
                                        +# Wait for message to come in
                                        +msg = await asyncio.wait_for(future, 1)
                                        +
                                        +
                                        +
                                        + +
                                        +
                                        require 'nats/client'
                                        +
                                        +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                        +  nc.subscribe("updates") do |msg|
                                        +    puts msg
                                        +    nc.close
                                        +  end
                                        +
                                        +  nc.publish("updates", "All is Well")
                                        +end
                                        +
                                        +
                                        +
                                        + +
                                        +
                                        nc.subscribe("updates", (err, msg) => {
                                        +    if(err) {
                                        +        console.log('error', err);
                                        +    } else {
                                        +        t.log(msg.data);
                                        +    }
                                        +});
                                        +
                                        +
                                        + +
                                        + +
                                        + +
                                        +
                                        +
                                        + +

                                        results matching ""

                                        +
                                          + +
                                          +
                                          + +

                                          No results matching ""

                                          + +
                                          +
                                          +
                                          + +
                                          +
                                          + +
                                          + + + + + + + + + + + + + + +
                                          + + +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/drain.html b/docs/developer/receiving/drain.html new file mode 100644 index 0000000..4d5da46 --- /dev/null +++ b/docs/developer/receiving/drain.html @@ -0,0 +1,2698 @@ + + + + + + + Draining Messages Before Disconnect ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                          +
                                          + + + + + + + + +
                                          + +
                                          + +
                                          + + + + + + + + +
                                          +
                                          + +
                                          +
                                          + +
                                          + +

                                          Draining Connections and Subscriptions

                                          +

                                          A new feature being added across the NATS client libraries is the ability to drain connections or subscriptions. Closing a connection, or unsubscribing from a subscription are generally considered immediate requests. When you close or unsubscribe the library will halt messages in any pending queue or cache for subscribers. When you drain a subscription or connection, it will process any cached/pending messages before closing.

                                          +

                                          Drain provides clients that use queue subscriptions with a way to bring down applications without losing any messages. A client can bring up a new queue member, drain and shut down the old queue member, all without losing messages sent to the old client. Without drain, there is the possibility of lost messages due to queue timing.

                                          +

                                          The libraries can provide drain on a connection or on a subscriber, or both.

                                          +

                                          For a connection the process is essentially:

                                          +
                                            +
                                          1. Drain subscriptions
                                          2. +
                                          3. Stop new messages from being published
                                          4. +
                                          5. Flush any remaining messages
                                          6. +
                                          7. Close
                                          8. +
                                          +

                                          As an example of draining a connection:

                                          +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                          +
                                          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("demo.nats.io",
                                          +	nats.DrainTimeout(10*time.Second),
                                          +	nats.ErrorHandler(func(_ *nats.Conn, _ *nats.Subscription, err error) {
                                          +		errCh <- 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("foo", func(_ *nats.Msg) {
                                          +	time.Sleep(200 * time.Millisecond)
                                          +}); err != nil {
                                          +	log.Fatal(err)
                                          +}
                                          +
                                          +// Publish a message
                                          +if err := nc.Publish("foo", []byte("hello")); 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 := <-errCh:
                                          +	log.Fatal(e)
                                          +default:
                                          +}
                                          +
                                          +
                                          +
                                          + +
                                          +
                                          Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                          +
                                          +// 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) -> {
                                          +    String str = new String(msg.getData(), StandardCharsets.UTF_8);
                                          +    System.out.println(str);
                                          +    latch.countDown();
                                          +});
                                          +
                                          +// Subscribe
                                          +d.subscribe("updates");
                                          +
                                          +// Wait for a message to come in
                                          +latch.await();
                                          +
                                          +// Drain the connection, which will close it
                                          +CompletableFuture<Boolean> drained = nc.drain(Duration.ofSeconds(10));
                                          +
                                          +// Wait for the drain to complete
                                          +drained.get();
                                          +
                                          +
                                          + +
                                          +
                                          import asyncio
                                          +from nats.aio.client import Client as NATS
                                          +
                                          +async def example(loop):
                                          +    nc = NATS()
                                          +
                                          +    await nc.connect("nats://127.0.0.1:4222", loop=loop)
                                          +
                                          +    async def handler(msg):
                                          +        print("[Received] ", msg)
                                          +        await nc.publish(msg.reply, b'I can help')
                                          +
                                          +        # Can check whether client is in draining state
                                          +        if nc.is_draining:
                                          +            print("Connection is draining")
                                          +
                                          +    await nc.subscribe("help", "workers", cb=handler)
                                          +    await nc.flush()
                                          +
                                          +    requests = []
                                          +    for i in range(0, 10):
                                          +        request = nc.request("help", b'help!', timeout=1)
                                          +        requests.append(request)
                                          +
                                          +    # Wait for all the responses
                                          +    responses = []
                                          +    responses = await asyncio.gather(*requests)
                                          +
                                          +    # Gracefully close the connection.
                                          +    await nc.drain()
                                          +
                                          +    print("Received {} responses".format(len(responses)))
                                          +
                                          +
                                          + +
                                          +
                                          NATS.start(drain_timeout: 1) do |nc|
                                          +  NATS.subscribe('foo', queue: "workers") do |msg, reply, sub|
                                          +    nc.publish(reply, "ACK:#{msg}")
                                          +  end
                                          +
                                          +  NATS.subscribe('bar', queue: "workers") do |msg, reply, sub|
                                          +    nc.publish(reply, "ACK:#{msg}")
                                          +  end
                                          +
                                          +  NATS.subscribe('quux', queue: "workers") do |msg, reply, sub|
                                          +    nc.publish(reply, "ACK:#{msg}")
                                          +  end
                                          +
                                          +  EM.add_timer(2) do
                                          +    next if NATS.draining?
                                          +
                                          +    # Drain gracefully closes the connection.
                                          +    NATS.drain do
                                          +      puts "Done draining. Connection is closed."
                                          +    end
                                          +  end
                                          +end
                                          +
                                          +
                                          + +
                                          +
                                          let sub = await nc.subscribe('updates', (err, msg) => {
                                          +    t.log('worker got message', msg.data);
                                          +}, {queue: "workers"});
                                          +// [end drain_sub]
                                          +nc.flush();
                                          +
                                          +await nc.drain();
                                          +// client must close when the connection drain resolves
                                          +nc.close();
                                          +
                                          +
                                          + +
                                          +

                                          The mechanics of drain for a subscription are simpler:

                                          +
                                            +
                                          1. Unsubscribe at the server
                                          2. +
                                          3. Process known messages
                                          4. +
                                          5. Clean up
                                          6. +
                                          +

                                          The API for drain can generally be used instead of unsubscribe:

                                          +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                          +
                                          
                                          +	nc, err := nats.Connect("demo.nats.io")
                                          +	if err != nil {
                                          +		log.Fatal(err)
                                          +	}
                                          +	defer nc.Close()
                                          +
                                          +	done := sync.WaitGroup{}
                                          +	done.Add(1)
                                          +
                                          +	count := 0
                                          +	errCh := make(chan error, 1)
                                          +
                                          +	msgAfterDrain := "not this one"
                                          +
                                          +	// This callback will process each message slowly
                                          +	sub, err := nc.Subscribe("updates", func(m *nats.Msg) {
                                          +		if string(m.Data) == msgAfterDrain {
                                          +			errCh <- fmt.Errorf("Should not have received this message")
                                          +			return
                                          +		}
                                          +		time.Sleep(100 * time.Millisecond)
                                          +		count++
                                          +		if count == 2 {
                                          +			done.Done()
                                          +		}
                                          +	})
                                          +
                                          +	// Send 2 messages
                                          +	for i := 0; i < 2; i++ {
                                          +		nc.Publish("updates", []byte("hello"))
                                          +	}
                                          +
                                          +	// 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("updates", []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 := <-errCh:
                                          +		log.Fatal(e)
                                          +	case <-time.After(200 * time.Millisecond):
                                          +		// OK!
                                          +	}
                                          +
                                          +
                                          +
                                          + +
                                          +
                                          Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                          +
                                          +// 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) -> {
                                          +    String str = new String(msg.getData(), StandardCharsets.UTF_8);
                                          +    System.out.println(str);
                                          +    latch.countDown();
                                          +});
                                          +
                                          +// Subscribe
                                          +d.subscribe("updates");
                                          +
                                          +// Wait for a message to come in
                                          +latch.await();
                                          +
                                          +// Messages that have arrived will be processed
                                          +CompletableFuture<Boolean> drained = d.drain(Duration.ofSeconds(10));
                                          +
                                          +// Wait for the drain to complete
                                          +drained.get();
                                          +
                                          +// Close the connection
                                          +nc.close();
                                          +
                                          +
                                          + +
                                          +
                                          // Drain subscription is not supported.
                                          +
                                          +
                                          + +
                                          +
                                          import asyncio
                                          +from nats.aio.client import Client as NATS
                                          +
                                          +async def example(loop):
                                          +    nc = NATS()
                                          +
                                          +    await nc.connect("nats://127.0.0.1:4222", loop=loop)
                                          +
                                          +    async def handler(msg):
                                          +        print("[Received] ", msg)
                                          +        await nc.publish(msg.reply, b'I can help')
                                          +
                                          +        # Can check whether client is in draining state
                                          +        if nc.is_draining:
                                          +            print("Connection is draining")
                                          +
                                          +    sid = await nc.subscribe("help", "workers", cb=handler)
                                          +    await nc.flush()
                                          +
                                          +    # Gracefully unsubscribe the subscription
                                          +    await nc.drain(sid)
                                          +
                                          +
                                          +
                                          + +
                                          +
                                          # There is currently no API to drain a single subscription, the whole connection can be drained though via NATS.drain
                                          +
                                          +
                                          + +
                                          +
                                          let sub = await nc.subscribe('updates', (err, msg) => {
                                          +    t.log('worker got message', msg.data);
                                          +}, {queue: "workers"});
                                          +
                                          +
                                          + +
                                          +

                                          Because draining can involve messages flowing to the server, for a flush and asynchronous message processing, the timeout for drain should generally be higher than the timeout for a simple message request/reply or similar.

                                          + + +
                                          + +
                                          +
                                          +
                                          + +

                                          results matching ""

                                          +
                                            + +
                                            +
                                            + +

                                            No results matching ""

                                            + +
                                            +
                                            +
                                            + +
                                            +
                                            + +
                                            + + + + + + + + + + + + + + +
                                            + + +
                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/intro.html b/docs/developer/receiving/intro.html new file mode 100644 index 0000000..0632b31 --- /dev/null +++ b/docs/developer/receiving/intro.html @@ -0,0 +1,2334 @@ + + + + + + + Receiving Messages ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                            +
                                            + + + + + + + + +
                                            + +
                                            + +
                                            + + + + + + + + +
                                            +
                                            + +
                                            +
                                            + +
                                            + +

                                            Receiving Messages

                                            +

                                            Receiving messages with NATS can be very library dependent.

                                            +

                                            Some languages, like Go or Java, provide synchronous and asynchronous APIs, while others may only support one type of subscription.

                                            +

                                            In all cases, the process of subscribing involves having the client library tell the NATS server that an application is interested in a particular subject.

                                            +

                                            Under the covers, the client library will assign a unique id to each subscription. This id is used when the server sends messages to a specific subscription. Each subscription gets a unique id, so if the same connection is used multiple times for the same subject, the server will send multiple copies of the same message. When an application is done with a subscription it unsubscribes which tells the server to stop sending messages.

                                            + + +
                                            + +
                                            +
                                            +
                                            + +

                                            results matching ""

                                            +
                                              + +
                                              +
                                              + +

                                              No results matching ""

                                              + +
                                              +
                                              +
                                              + +
                                              +
                                              + +
                                              + + + + + + + + + + + + + + +
                                              + + +
                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/queues.html b/docs/developer/receiving/queues.html new file mode 100644 index 0000000..724aa2a --- /dev/null +++ b/docs/developer/receiving/queues.html @@ -0,0 +1,2492 @@ + + + + + + + Queue Subscriptions ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                              +
                                              + + + + + + + + +
                                              + +
                                              + +
                                              + + + + + + + + +
                                              +
                                              + +
                                              +
                                              + +
                                              + +

                                              Queue Subscriptions

                                              +

                                              Subscribing to a queue group is only slightly different than subscribing to a subject alone. The application simply includes a queue name with the subscription. The effect of including the group is fairly major, since the server will now load balance messages between the members of the queue group, but the code differences are minimal.

                                              +

                                              Keep in mind that the queue groups in NATS are dynamic and do not require any server configuration. You can almost think of a regular subscription as a queue group of 1, but it is probably not worth thinking too much about that.

                                              +
                                              +digraph g { + rankdir=LR + publisher [shape=box, style="rounded", label="PUB updates"]; + subject [shape=circle, label="gnatsd"]; + sub1 [shape=box, style="rounded", label="SUB updates workers"]; + sub2 [shape=box, style="rounded", label="SUB updates workers"]; + sub3 [shape=box, style="rounded", label="SUB updates workers"]; + + publisher -> subject [label="msgs 1,2,3"]; + subject -> sub1 [label="msg 2"]; + subject -> sub2 [label="msg 1"]; + subject -> sub3 [label="msg 3"]; +} +
                                              + +

                                              As an example, to subscribe to the queue workers with the subject updates:

                                              +
                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                              +
                                              nc, err := nats.Connect("demo.nats.io")
                                              +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 "updates" with queue name "workers"
                                              +if _, err := nc.QueueSubscribe("updates", "worker", func(m *nats.Msg) {
                                              +	wg.Done()
                                              +}); err != nil {
                                              +	log.Fatal(err)
                                              +}
                                              +
                                              +// Wait for messages to come in
                                              +wg.Wait()
                                              +
                                              +// Close the connection
                                              +nc.Close()
                                              +
                                              +
                                              + +
                                              +
                                              Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                              +
                                              +// 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) -> {
                                              +    String str = new String(msg.getData(), StandardCharsets.UTF_8);
                                              +    System.out.println(str);
                                              +    latch.countDown();
                                              +});
                                              +
                                              +// Subscribe
                                              +d.subscribe("updates", "workers");
                                              +
                                              +// Wait for a message to come in
                                              +latch.await(); 
                                              +
                                              +// Close the connection
                                              +nc.close();
                                              +
                                              +
                                              + +
                                              +
                                              nc.subscribe('updates', {queue: "workers"}, (msg) => {
                                              +    t.log('worker got message', msg);
                                              +});
                                              +
                                              +
                                              + +
                                              +
                                              nc = NATS()
                                              +
                                              +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                              +
                                              +future = asyncio.Future()
                                              +
                                              +async def cb(msg):
                                              +  nonlocal future
                                              +  future.set_result(msg)
                                              +
                                              +await nc.subscribe("updates", queue="workers", cb=cb)
                                              +await nc.publish("updates", b'All is Well')
                                              +
                                              +msg = await asyncio.wait_for(future, 1)
                                              +print("Msg", msg)
                                              +
                                              +
                                              +
                                              + +
                                              +
                                              require 'nats/client'
                                              +require 'fiber'
                                              +
                                              +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                              +  Fiber.new do
                                              +    f = Fiber.current
                                              +
                                              +    nc.subscribe("updates", queue: "worker") do |msg, reply|
                                              +      f.resume Time.now
                                              +    end
                                              +
                                              +    nc.publish("updates", "A")
                                              +
                                              +    # Use the response
                                              +    msg = Fiber.yield
                                              +    puts "Msg: #{msg}"
                                              +  end.resume
                                              +end
                                              +
                                              +
                                              +
                                              + +
                                              +
                                              await nc.subscribe('updates', (err, msg) => {
                                              +    t.log('worker got message', msg.data);
                                              +}, {queue: "workers"});
                                              +
                                              +
                                              + +
                                              +

                                              If you run this example with the publish examples that send to updates, you will see that one of the instances gets a message while the others you run won't. But the instance that receives the message will change.

                                              + + +
                                              + +
                                              +
                                              +
                                              + +

                                              results matching ""

                                              +
                                                + +
                                                +
                                                + +

                                                No results matching ""

                                                + +
                                                +
                                                +
                                                + +
                                                +
                                                + +
                                                + + + + + + + + + + + + + + +
                                                + + +
                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/reply.html b/docs/developer/receiving/reply.html new file mode 100644 index 0000000..bcdaa5f --- /dev/null +++ b/docs/developer/receiving/reply.html @@ -0,0 +1,2492 @@ + + + + + + + Replying to a Message ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                +
                                                + + + + + + + + +
                                                + +
                                                + +
                                                + + + + + + + + +
                                                +
                                                + +
                                                +
                                                + +
                                                + +

                                                Replying to a Message

                                                +

                                                Incoming messages have an optional reply-to field. If that field is set, it will contain a subject to which a reply is expected.

                                                +

                                                For example, the following code will listen for that request and respond with the time.

                                                +
                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                +
                                                nc, err := nats.Connect("demo.nats.io")
                                                +if err != nil {
                                                +	log.Fatal(err)
                                                +}
                                                +defer nc.Close()
                                                +
                                                +// Subscribe
                                                +sub, err := nc.SubscribeSync("time")
                                                +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()
                                                +
                                                +
                                                + +
                                                +
                                                Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                +
                                                +// Subscribe
                                                +Subscription sub = nc.subscribe("time");
                                                +
                                                +// Read a message
                                                +Message msg = sub.nextMessage(Duration.ZERO);
                                                +
                                                +// Get the time
                                                +Calendar cal = Calendar.getInstance();
                                                +SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
                                                +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();
                                                +
                                                +
                                                + +
                                                +
                                                // set up a subscription to process a request
                                                +nc.subscribe('time', (msg, reply) => {
                                                +    if (msg.reply) {
                                                +        nc.publish(msg.reply, new Date().toLocaleTimeString());
                                                +    }
                                                +});
                                                +
                                                +
                                                + +
                                                +
                                                nc = NATS()
                                                +
                                                +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                +
                                                +future = asyncio.Future()
                                                +
                                                +async def cb(msg):
                                                +  nonlocal future
                                                +  future.set_result(msg)
                                                +
                                                +await nc.subscribe("time", cb=cb)
                                                +
                                                +await nc.publish_request("time", new_inbox(), b'What is the time?')
                                                +await nc.flush()
                                                +
                                                +# Read the message
                                                +msg = await asyncio.wait_for(future, 1)
                                                +
                                                +# Send the time
                                                +time_as_bytes = "{}".format(datetime.now()).encode()
                                                +await nc.publish(msg.reply, time_as_bytes)
                                                +
                                                +
                                                +
                                                + +
                                                +
                                                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") 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}"
                                                +
                                                +  end.resume
                                                +end
                                                +
                                                +
                                                +
                                                + +
                                                +
                                                // set up a subscription to process a request
                                                +await nc.subscribe('time', (err, msg) => {
                                                +    if (msg.reply) {
                                                +        nc.publish(msg.reply, new Date().toLocaleTimeString());
                                                +    } else {
                                                +        t.log('got a request for the time, but no reply subject was set.');
                                                +    }
                                                +});
                                                +
                                                +
                                                + +
                                                + +
                                                + +
                                                +
                                                +
                                                + +

                                                results matching ""

                                                +
                                                  + +
                                                  +
                                                  + +

                                                  No results matching ""

                                                  + +
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + + + + + + + + + + + + + + +
                                                  + + +
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/structure.html b/docs/developer/receiving/structure.html new file mode 100644 index 0000000..9bd74fb --- /dev/null +++ b/docs/developer/receiving/structure.html @@ -0,0 +1,2519 @@ + + + + + + + Structured Data ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  +
                                                  + + + + + + + + +
                                                  + +
                                                  + +
                                                  + + + + + + + + +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + +

                                                  Receiving Structured Data

                                                  +

                                                  Client libraries may provide tools to help receive structured data, like JSON. The core traffic to the NATS server will always be byte arrays. For libraries that don't provide helpers, you can always encode and decode data before sending the associated bytes to the NATS client.

                                                  +

                                                  For example, to receive JSON you could do:

                                                  +
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  +
                                                  nc, err := nats.Connect("demo.nats.io")
                                                  +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("updates", func(s *stock) {
                                                  +	log.Printf("Stock: %s - Price: %v", 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()
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  class StockForJsonSub {
                                                  +    public String symbol;
                                                  +    public float price;
                                                  +
                                                  +    public String toString() {
                                                  +        return symbol + " is at " + price;
                                                  +    }
                                                  +}
                                                  +
                                                  +public class SubscribeJSON {
                                                  +    public static void main(String[] args) {
                                                  +
                                                  +        try {
                                                  +            Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                  +
                                                  +            // 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) -> {
                                                  +                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("updates");
                                                  +
                                                  +            // Wait for a message to come in
                                                  +            latch.await(); 
                                                  +
                                                  +            // Close the connection
                                                  +            nc.close();
                                                  +        } catch (Exception e) {
                                                  +            e.printStackTrace();
                                                  +        }
                                                  +    }
                                                  +}
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  let nc = NATS.connect({
                                                  +    url: "nats://demo.nats.io:4222",
                                                  +    json: true
                                                  +});
                                                  +
                                                  +nc.subscribe('updates', (msg) => {
                                                  +    if(msg && msg.ticker === 'TSLA') {
                                                  +        t.log('got message:', msg);
                                                  +    }
                                                  +});
                                                  +
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  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=["nats://127.0.0.1:4222"], loop=loop)
                                                  +
                                                  +    async def message_handler(msg):
                                                  +        data = json.loads(msg.data.decode())
                                                  +        print(data)
                                                  +
                                                  +    sid = await nc.subscribe("updates", cb=message_handler)
                                                  +    await nc.flush()
                                                  +
                                                  +    await nc.auto_unsubscribe(sid, 2)
                                                  +    await nc.publish("updates", json.dumps({"symbol": "GOOG", "price": 1200 }).encode())
                                                  +    await asyncio.sleep(1, loop=loop)
                                                  +    await nc.close()
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  require 'nats/client'
                                                  +require 'json'
                                                  +
                                                  +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                                  +  nc.subscribe("updates") do |msg|
                                                  +    m = JSON.parse(msg)
                                                  +
                                                  +    # {"symbol"=>"GOOG", "price"=>12}
                                                  +    p m
                                                  +  end
                                                  +end
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  let nc = await connect({
                                                  +    url: "nats://demo.nats.io:4222",
                                                  +    payload: Payload.JSON
                                                  +});
                                                  +
                                                  +nc.subscribe('updates', (err, msg) => {
                                                  +    t.log('got message:', msg.data ? msg.data : "no payload");
                                                  +});
                                                  +
                                                  +
                                                  +
                                                  + +
                                                  + +
                                                  + +
                                                  +
                                                  +
                                                  + +

                                                  results matching ""

                                                  +
                                                    + +
                                                    +
                                                    + +

                                                    No results matching ""

                                                    + +
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + + + + + + + + + + + + + + +
                                                    + + +
                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/sync.html b/docs/developer/receiving/sync.html new file mode 100644 index 0000000..f426df1 --- /dev/null +++ b/docs/developer/receiving/sync.html @@ -0,0 +1,2430 @@ + + + + + + + Synchronous Subscriptions ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    +
                                                    + + + + + + + + +
                                                    + +
                                                    + +
                                                    + + + + + + + + +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + +

                                                    Synchronous Subscriptions

                                                    +

                                                    Synchronous subscriptions require the application to poll for messages. This type of subscription is easy to set-up and use, but requires the application to deal with looping if multiple messages are expected. For situations where a single message is expected, synchronous subscriptions are sometimes easier to manage, depending on the language.

                                                    +

                                                    For example, to subscribe to the subject updates and receive a single message you could do:

                                                    +
                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    +
                                                    nc, err := nats.Connect("demo.nats.io")
                                                    +if err != nil {
                                                    +	log.Fatal(err)
                                                    +}
                                                    +defer nc.Close()
                                                    +
                                                    +// Subscribe
                                                    +sub, err := nc.SubscribeSync("updates")
                                                    +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("Reply: %s", msg.Data)
                                                    +
                                                    +// Close the connection
                                                    +nc.Close()
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                    +
                                                    +// Subscribe
                                                    +Subscription sub = nc.subscribe("updates");
                                                    +
                                                    +// 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();
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    // node-nats subscriptions are always async.
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    # Asyncio NATS client currently does not have a sync subscribe API
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    # The Ruby NATS client subscriptions are all async.
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    // ts-nats subscriptions are always async.
                                                    +
                                                    +
                                                    + +
                                                    + +
                                                    + +
                                                    +
                                                    +
                                                    + +

                                                    results matching ""

                                                    +
                                                      + +
                                                      +
                                                      + +

                                                      No results matching ""

                                                      + +
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + + + + + + + + + + + + + + +
                                                      + + +
                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/unsub_after.html b/docs/developer/receiving/unsub_after.html new file mode 100644 index 0000000..5138c5a --- /dev/null +++ b/docs/developer/receiving/unsub_after.html @@ -0,0 +1,2503 @@ + + + + + + + Unsubscribing After N Messages ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                      +
                                                      + + + + + + + + +
                                                      + +
                                                      + +
                                                      + + + + + + + + +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + +

                                                      Unsubscribing After a Specified Number of Messages

                                                      +

                                                      NATS provides a special form of unsubscribe that is configured with a message count and takes effect when that many messages are sent to a subscriber. This mechanism is very useful if only a single message is expected.

                                                      +

                                                      The message count you provide is the total message count for a subscriber. So if you unsubscribe with a count of 1, the server will stop sending messages to that subscription after it has received one message. If the subscriber has already received one or more messages, the unsubscribe will be immediate. This action based on history can be confusing if you try to auto unsubscribe on a long running subscription, but is logical for a new one.

                                                      +
                                                      +

                                                      Auto unsubscribe is based on the total messages sent to a subscriber, not just the new ones.

                                                      +
                                                      +

                                                      Auto unsubscribe can also result in some tricky edge cases if a server cluster is used. The client will tell the server of the unsubscribe count when the application requests it. But if the client disconnects before the count is reached, it may have to tell another server of the remaining count. This dance between previous server notifications and new notifications on reconnect can result in unplanned behavior.

                                                      +

                                                      Finally, most of the client libraries also track the max message count after an auto unsubscribe request. Which means that the client will stop allowing messages to flow even if the server has miscounted due to reconnects or some other failure in the client library.

                                                      +

                                                      The following example shows unsubscribe after a single message:

                                                      +
                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                      +
                                                      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()
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      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();
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      // `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);
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      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'...')
                                                      +
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      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
                                                      +
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      // `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);
                                                      +
                                                      +
                                                      + +
                                                      + +
                                                      + +
                                                      +
                                                      +
                                                      + +

                                                      results matching ""

                                                      +
                                                        + +
                                                        +
                                                        + +

                                                        No results matching ""

                                                        + +
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + + + + + + + + + + + + + + +
                                                        + + +
                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/unsubscribing.html b/docs/developer/receiving/unsubscribing.html new file mode 100644 index 0000000..c6fa3b1 --- /dev/null +++ b/docs/developer/receiving/unsubscribing.html @@ -0,0 +1,2498 @@ + + + + + + + Unsubscribing ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                        +
                                                        + + + + + + + + +
                                                        + +
                                                        + +
                                                        + + + + + + + + +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + +

                                                        Unsubscribing

                                                        +

                                                        The client libraries provide a means to unsubscribe a previous subscription request.

                                                        +

                                                        This process requires an interaction with the server, so for an asynchronous subscription there may be a small window of time where a message comes through as the unsubscribe is processed by the library. Ignoring that slight edge case, the client library will clean up any outstanding messages and tell the server that the subscription is no longer used.

                                                        +
                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                        +
                                                        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.Unsubscribe(); err != nil {
                                                        +	log.Fatal(err)
                                                        +}
                                                        +
                                                        +// Async Subscription
                                                        +sub, err = nc.Subscribe("updates", func(_ *nats.Msg) {})
                                                        +if err != nil {
                                                        +	log.Fatal(err)
                                                        +}
                                                        +if err := sub.Unsubscribe(); err != nil {
                                                        +	log.Fatal(err)
                                                        +}
                                                        +
                                                        +// Close the connection
                                                        +nc.Close()
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        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();
                                                        +
                                                        +// Async Subscription
                                                        +d.subscribe("updates");
                                                        +d.unsubscribe("updates");
                                                        +
                                                        +// Close the connection
                                                        +nc.close();
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        // set up a subscription to process a request
                                                        +let sub = nc.subscribe(NATS.createInbox(), (msg, reply) => {
                                                        +    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);
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        nc = NATS()
                                                        +
                                                        +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                        +
                                                        +future = asyncio.Future()
                                                        +
                                                        +async def cb(msg):
                                                        +  nonlocal future
                                                        +  future.set_result(msg)
                                                        +
                                                        +sid = await nc.subscribe("updates", cb=cb)
                                                        +await nc.publish("updates", b'All is Well')
                                                        +
                                                        +# Remove interest in subject
                                                        +await nc.unsubscribe(sid)
                                                        +
                                                        +# Won't be received...
                                                        +await nc.publish("updates", b'...')
                                                        +
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        require 'nats/client'
                                                        +require 'fiber'
                                                        +
                                                        +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                                        +  Fiber.new do
                                                        +    f = Fiber.current
                                                        +
                                                        +    sid = nc.subscribe("time") 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}"
                                                        +
                                                        +    nc.unsubscribe(sid)
                                                        +
                                                        +    # Won't be received
                                                        +    nc.publish("time", 'What is the time?', NATS.create_inbox)
                                                        +
                                                        +  end.resume
                                                        +end
                                                        +
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        // set up a subscription to process a request
                                                        +let sub = await nc.subscribe(createInbox(), (err, msg) => {
                                                        +    if (msg.reply) {
                                                        +        nc.publish(msg.reply, new Date().toLocaleTimeString());
                                                        +    } else {
                                                        +        t.log('got a request for the time, but no reply subject was set.');
                                                        +    }
                                                        +});
                                                        +
                                                        +// 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();
                                                        +
                                                        +
                                                        + +
                                                        + +
                                                        + +
                                                        +
                                                        +
                                                        + +

                                                        results matching ""

                                                        +
                                                          + +
                                                          +
                                                          + +

                                                          No results matching ""

                                                          + +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          + +
                                                          + + + + + + + + + + + + + + +
                                                          + + +
                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/receiving/wildcards.html b/docs/developer/receiving/wildcards.html new file mode 100644 index 0000000..978b9c0 --- /dev/null +++ b/docs/developer/receiving/wildcards.html @@ -0,0 +1,2853 @@ + + + + + + + Wildcard Subscriptions ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          + + + + + + + + +
                                                          + +
                                                          + +
                                                          + + + + + + + + +
                                                          +
                                                          + +
                                                          +
                                                          + +
                                                          + +

                                                          Wildcards

                                                          +

                                                          There is no special code to subscribe with a wildcard subject. Wildcards are a normal part of the subject name.

                                                          +

                                                          However, there is a common technique that may come in to play when you use wildcards. This technique is to use the subject provided with the incoming message to determine what to do with the message.

                                                          +

                                                          For example, you can subscribe using * and then act based on the actual subject.

                                                          +
                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          nc, err := nats.Connect("demo.nats.io")
                                                          +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("time.*.east", func(m *nats.Msg) {
                                                          +	log.Printf("%s: %s", 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()
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                          +
                                                          +// 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) -> {
                                                          +    String subject = msg.getSubject();
                                                          +    String str = new String(msg.getData(), StandardCharsets.UTF_8);
                                                          +    System.out.println(subject + ": " + str);
                                                          +    latch.countDown();
                                                          +});
                                                          +
                                                          +// Subscribe
                                                          +d.subscribe("time.*.east");
                                                          +
                                                          +// Wait for messages to come in
                                                          +latch.await();
                                                          +
                                                          +// Close the connection
                                                          +nc.close();
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          nc.subscribe('time.us.*', (msg, reply, subject) => {
                                                          +    // converting timezones correctly in node requires a library
                                                          +    // this doesn't take into account *many* things.
                                                          +    let time = "";
                                                          +    switch (subject) {
                                                          +        case 'time.us.east':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/New_York"});
                                                          +            break;
                                                          +        case 'time.us.central':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Chicago"});
                                                          +            break;
                                                          +        case 'time.us.mountain':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Denver"});
                                                          +            break;
                                                          +        case 'time.us.west':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Los_Angeles"});
                                                          +            break;
                                                          +        default:
                                                          +            time = "I don't know what you are talking about Willis";
                                                          +    }
                                                          +    t.log(subject, time);
                                                          +});
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          nc = NATS()
                                                          +
                                                          +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                          +
                                                          +# Use queue to wait for 2 messages to arrive
                                                          +queue = asyncio.Queue()
                                                          +async def cb(msg):
                                                          +  await queue.put_nowait(msg)
                                                          +
                                                          +await nc.subscribe("time.*.east", cb=cb)
                                                          +
                                                          +# Send 2 messages and wait for them to come in
                                                          +await nc.publish("time.A.east", b'A')
                                                          +await nc.publish("time.B.east", b'B')
                                                          +
                                                          +msg_A = await queue.get()
                                                          +msg_B = await queue.get()
                                                          +
                                                          +print("Msg A:", msg_A)
                                                          +print("Msg B:", msg_B)
                                                          +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          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.*.east") do |msg, reply|
                                                          +      f.resume Time.now
                                                          +    end
                                                          +
                                                          +    nc.publish("time.A.east", "A")
                                                          +    nc.publish("time.B.east", "B")
                                                          +
                                                          +    # Use the response
                                                          +    msg_A = Fiber.yield
                                                          +    puts "Msg A: #{msg_A}"
                                                          +
                                                          +    msg_B = Fiber.yield
                                                          +    puts "Msg B: #{msg_B}"
                                                          +
                                                          +  end.resume
                                                          +end
                                                          +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          await nc.subscribe('time.us.*', (err, msg) => {
                                                          +    // converting timezones correctly in node requires a library
                                                          +    // this doesn't take into account *many* things.
                                                          +    let time = "";
                                                          +    switch (msg.subject) {
                                                          +        case 'time.us.east':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/New_York"});
                                                          +            break;
                                                          +        case 'time.us.central':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Chicago"});
                                                          +            break;
                                                          +        case 'time.us.mountain':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Denver"});
                                                          +            break;
                                                          +        case 'time.us.west':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Los_Angeles"});
                                                          +            break;
                                                          +        default:
                                                          +            time = "I don't know what you are talking about Willis";
                                                          +    }
                                                          +    console.log(msg.subject, time);
                                                          +});
                                                          +
                                                          +
                                                          + +
                                                          +

                                                          or do something similar with >:

                                                          +
                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          nc, err := nats.Connect("demo.nats.io")
                                                          +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("time.>", func(m *nats.Msg) {
                                                          +	log.Printf("%s: %s", 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()
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                          +
                                                          +// 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) -> {
                                                          +    String subject = msg.getSubject();
                                                          +    String str = new String(msg.getData(), StandardCharsets.UTF_8);
                                                          +    System.out.println(subject + ": " + str);
                                                          +    latch.countDown();
                                                          +});
                                                          +
                                                          +// Subscribe
                                                          +d.subscribe("time.>");
                                                          +
                                                          +// Wait for messages to come in
                                                          +latch.await();
                                                          +
                                                          +// Close the connection
                                                          +nc.close();
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          nc.subscribe('time.>', (msg, reply, subject) => {
                                                          +    // converting timezones correctly in node requires a library
                                                          +    // this doesn't take into account *many* things.
                                                          +    let time = "";
                                                          +    switch (subject) {
                                                          +        case 'time.us.east':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/New_York"});
                                                          +            break;
                                                          +        case 'time.us.central':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Chicago"});
                                                          +            break;
                                                          +        case 'time.us.mountain':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Denver"});
                                                          +            break;
                                                          +        case 'time.us.west':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Los_Angeles"});
                                                          +            break;
                                                          +        default:
                                                          +            time = "I don't know what you are talking about Willis";
                                                          +    }
                                                          +    t.log(subject, time);
                                                          +});
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          nc = NATS()
                                                          +
                                                          +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                          +
                                                          +# Use queue to wait for 4 messages to arrive
                                                          +queue = asyncio.Queue()
                                                          +async def cb(msg):
                                                          +  await queue.put(msg)
                                                          +
                                                          +await nc.subscribe("time.>", cb=cb)
                                                          +
                                                          +# Send 2 messages and wait for them to come in
                                                          +await nc.publish("time.A.east", b'A')
                                                          +await nc.publish("time.B.east", b'B')
                                                          +await nc.publish("time.C.west", b'C')
                                                          +await nc.publish("time.D.west", b'D')
                                                          +
                                                          +for i in range(0, 4):
                                                          +  msg = await queue.get()
                                                          +  print("Msg:", msg)
                                                          +
                                                          +await nc.close()
                                                          +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          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.>") do |msg, reply|
                                                          +      f.resume Time.now.to_f
                                                          +    end
                                                          +
                                                          +    nc.publish("time.A.east", "A")
                                                          +    nc.publish("time.B.east", "B")
                                                          +    nc.publish("time.C.west", "C")
                                                          +    nc.publish("time.D.west", "D")
                                                          +
                                                          +    # Use the response
                                                          +    4.times do 
                                                          +      msg = Fiber.yield
                                                          +      puts "Msg: #{msg}"
                                                          +    end
                                                          +  end.resume
                                                          +end
                                                          +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          await nc.subscribe('time.>', (err, msg) => {
                                                          +    // converting timezones correctly in node requires a library
                                                          +    // this doesn't take into account *many* things.
                                                          +    let time = "";
                                                          +    switch (msg.subject) {
                                                          +        case 'time.us.east':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/New_York"});
                                                          +            break;
                                                          +        case 'time.us.central':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Chicago"});
                                                          +            break;
                                                          +        case 'time.us.mountain':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Denver"});
                                                          +            break;
                                                          +        case 'time.us.west':
                                                          +            time = new Date().toLocaleTimeString("en-us", {timeZone: "America/Los_Angeles"});
                                                          +            break;
                                                          +        default:
                                                          +            time = "I don't know what you are talking about Willis";
                                                          +    }
                                                          +    t.log(msg.subject, time);
                                                          +});
                                                          +
                                                          +
                                                          + +
                                                          +

                                                          The following example can be used to test these two subscribers. The * subscriber should receive at most 2 messages, while the > subscriber receives 4. More importantly the time.*.east subscriber won't receive on time.us.east.atlanta because that won't match.

                                                          +
                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          nc, err := nats.Connect("demo.nats.io")
                                                          +if err != nil {
                                                          +	log.Fatal(err)
                                                          +}
                                                          +defer nc.Close()
                                                          +
                                                          +zoneID, err := time.LoadLocation("America/New_York")
                                                          +if err != nil {
                                                          +	log.Fatal(err)
                                                          +}
                                                          +now := time.Now()
                                                          +zoneDateTime := now.In(zoneID)
                                                          +formatted := zoneDateTime.String()
                                                          +
                                                          +nc.Publish("time.us.east", []byte(formatted))
                                                          +nc.Publish("time.us.east.atlanta", []byte(formatted))
                                                          +
                                                          +zoneID, err = time.LoadLocation("Europe/Warsaw")
                                                          +if err != nil {
                                                          +	log.Fatal(err)
                                                          +}
                                                          +zoneDateTime = now.In(zoneID)
                                                          +formatted = zoneDateTime.String()
                                                          +
                                                          +nc.Publish("time.eu.east", []byte(formatted))
                                                          +nc.Publish("time.eu.east.warsaw", []byte(formatted))
                                                          +
                                                          +// Close the connection
                                                          +nc.Close()
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                          +ZoneId zoneId = ZoneId.of("America/New_York");
                                                          +ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);
                                                          +String formatted = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
                                                          +
                                                          +nc.publish("time.us.east", formatted.getBytes(StandardCharsets.UTF_8));
                                                          +nc.publish("time.us.east.atlanta", formatted.getBytes(StandardCharsets.UTF_8));
                                                          +
                                                          +zoneId = ZoneId.of("Europe/Warsaw");
                                                          +zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);
                                                          +formatted = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
                                                          +nc.publish("time.eu.east", formatted.getBytes(StandardCharsets.UTF_8));
                                                          +nc.publish("time.eu.east.warsaw", formatted.getBytes(StandardCharsets.UTF_8));
                                                          +
                                                          +nc.flush(Duration.ZERO);
                                                          +nc.close();
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          nc.publish('time.us.east');
                                                          +nc.publish('time.us.central');
                                                          +nc.publish('time.us.mountain');
                                                          +nc.publish('time.us.west');
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          nc = NATS()
                                                          +
                                                          +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                          +
                                                          +await nc.publish("time.us.east", b'...')
                                                          +await nc.publish("time.us.east.atlanta", b'...')
                                                          +
                                                          +await nc.publish("time.eu.east", b'...')
                                                          +await nc.publish("time.eu.east.warsaw", b'...')
                                                          +
                                                          +await nc.close()
                                                          +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          NATS.start do |nc|
                                                          +   nc.publish("time.us.east", '...')
                                                          +   nc.publish("time.us.east.atlanta", '...')
                                                          +
                                                          +   nc.publish("time.eu.east", '...')
                                                          +   nc.publish("time.eu.east.warsaw", '...')
                                                          +
                                                          +   nc.drain
                                                          +end
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          nc.publish('time.us.east');
                                                          +nc.publish('time.us.central');
                                                          +nc.publish('time.us.mountain');
                                                          +nc.publish('time.us.west');
                                                          +
                                                          +
                                                          + +
                                                          + +
                                                          + +
                                                          +
                                                          +
                                                          + +

                                                          results matching ""

                                                          +
                                                            + +
                                                            +
                                                            + +

                                                            No results matching ""

                                                            + +
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + + + + + + + + + + + + + + +
                                                            + + +
                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/reconnect/buffer.html b/docs/developer/reconnect/buffer.html new file mode 100644 index 0000000..af8c6fb --- /dev/null +++ b/docs/developer/reconnect/buffer.html @@ -0,0 +1,2418 @@ + + + + + + + Buffering Messages During Reconnect Attempts ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                            +
                                                            + + + + + + + + +
                                                            + +
                                                            + +
                                                            + + + + + + + + +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + +

                                                            Buffering Messages During Reconnect Attempts

                                                            +

                                                            The NATS client libraries, try as much as possible to be fire and forget. One of the features that may be included in the library you are using is the ability to buffer outgoing messages when the connection is down.

                                                            +

                                                            During a short reconnect, these client can allow applications to publish messages that, because the server is offline, will be cached in the client. The library will then send those messages on reconnect. When the maximum reconnect buffer is reached, messages will no longer be publishable by the client.

                                                            +

                                                            Be aware, while the message appears to be sent to the application it is possible that it is never sent because the connection is never remade. Your applications should use patterns like acknowledgements to insure delivery.

                                                            +

                                                            For clients that support this feature, you are able to configure the size of this buffer with bytes, messages or both.

                                                            +
                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                            +
                                                            // Set reconnect buffer size in bytes (5 MB)
                                                            +nc, err := nats.Connect("demo.nats.io", nats.ReconnectBufSize(5*1024*1024))
                                                            +if err != nil {
                                                            +	log.Fatal(err)
                                                            +}
                                                            +defer nc.Close()
                                                            +
                                                            +// Do something with the connection
                                                            +
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            Options options = new Options.Builder().
                                                            +                            server("nats://demo.nats.io:4222").
                                                            +                            reconnectBufferSize(5 * 1024 * 1024).  // Set buffer in bytes
                                                            +                            build();
                                                            +Connection nc = Nats.connect(options);
                                                            +
                                                            +// Do something with the connection
                                                            +
                                                            +nc.close();
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            // Reconnect buffer size is not configurable on node-nats
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            # Asyncio NATS client currentply does not implement a reconnect buffer
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            # There is currently no reconnect pending buffer as part of the Ruby NATS client.
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            // Reconnect buffer size is not configurable on ts-nats
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            +

                                                            As mentioned throughout this document, each client library may behave slightly differently. Please check the documentation for the library you are using.

                                                            +
                                                            + + +
                                                            + +
                                                            +
                                                            +
                                                            + +

                                                            results matching ""

                                                            +
                                                              + +
                                                              +
                                                              + +

                                                              No results matching ""

                                                              + +
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              + +
                                                              + + + + + + + + + + + + + + +
                                                              + + +
                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/reconnect/disable.html b/docs/developer/reconnect/disable.html new file mode 100644 index 0000000..6d2db4b --- /dev/null +++ b/docs/developer/reconnect/disable.html @@ -0,0 +1,2439 @@ + + + + + + + Disabling Reconnect ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                              +
                                                              + + + + + + + + +
                                                              + +
                                                              + +
                                                              + + + + + + + + +
                                                              +
                                                              + +
                                                              +
                                                              + +
                                                              + +

                                                              Disable Reconnect

                                                              +

                                                              You can disable automatic reconnect with connection options:

                                                              +
                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                              +
                                                              // Disable reconnect attempts
                                                              +nc, err := nats.Connect("demo.nats.io", nats.NoReconnect())
                                                              +if err != nil {
                                                              +	log.Fatal(err)
                                                              +}
                                                              +defer nc.Close()
                                                              +
                                                              +// Do something with the connection
                                                              +
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              Options options = new Options.Builder().
                                                              +                            server("nats://demo.nats.io:4222").
                                                              +                            noReconnect(). // Disable reconnect attempts
                                                              +                            build();
                                                              +Connection nc = Nats.connect(options);
                                                              +
                                                              +// Do something with the connection
                                                              +
                                                              +nc.close();
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              let nc = NATS.connect({
                                                              +    reconnect: false,
                                                              +    servers: ["nats://demo.nats.io:4222"]
                                                              +});
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              nc = NATS()
                                                              +await nc.connect(
                                                              +   servers=[
                                                              +      "nats://demo.nats.io:1222",
                                                              +      "nats://demo.nats.io:1223",
                                                              +      "nats://demo.nats.io:1224"
                                                              +      ],
                                                              +   allow_reconnect=False,
                                                              +   )
                                                              +
                                                              +# Do something with the connection
                                                              +
                                                              +await nc.close()
                                                              +
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              require 'nats/client'
                                                              +
                                                              +NATS.start(servers: ["nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"], reconnect: false) do |nc|
                                                              +   # Do something with the connection
                                                              +
                                                              +   # Close the connection
                                                              +   nc.close
                                                              +end
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              // will throw an exception if connection fails
                                                              +let nc = await connect({
                                                              +    reconnect: false,
                                                              +    servers: ["nats://demo.nats.io:4222"]
                                                              +});
                                                              +nc.close();
                                                              +
                                                              +
                                                              + +
                                                              + +
                                                              + +
                                                              +
                                                              +
                                                              + +

                                                              results matching ""

                                                              +
                                                                + +
                                                                +
                                                                + +

                                                                No results matching ""

                                                                + +
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                + +
                                                                + + + + + + + + + + + + + + +
                                                                + + +
                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/reconnect/events.html b/docs/developer/reconnect/events.html new file mode 100644 index 0000000..346f473 --- /dev/null +++ b/docs/developer/reconnect/events.html @@ -0,0 +1,2471 @@ + + + + + + + Listening for Reconnect Events ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                +
                                                                + + + + + + + + +
                                                                + +
                                                                + +
                                                                + + + + + + + + +
                                                                +
                                                                + +
                                                                +
                                                                + +
                                                                + +

                                                                Listening for Reconnect Events

                                                                +

                                                                Because reconnect is primarily under the covers many libraries provide an event listener you can use to be notified of reconnect events. This event can be especially important for applications sending a lot of messages.

                                                                +
                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                +
                                                                // Connection event handlers are invoked asynchronously
                                                                +// and the state of the connection may have changed when
                                                                +// the callback is invoked.
                                                                +nc, err := nats.Connect("demo.nats.io",
                                                                +	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
                                                                +
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                Options options = new Options.Builder().
                                                                +                            server("nats://demo.nats.io:4222").
                                                                +                            connectionListener((conn, type) -> {
                                                                +                                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();
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                let nc = NATS.connect({
                                                                +    maxReconnectAttempts: 10,
                                                                +    servers: ["nats://demo.nats.io:4222"]
                                                                +});
                                                                +
                                                                +nc.on('reconnect', (c) => {
                                                                +    console.log('reconnected');
                                                                +});
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                nc = NATS()
                                                                +
                                                                +async def disconnected_cb():
                                                                +   print("Got disconnected!")
                                                                +
                                                                +async def reconnected_cb():
                                                                +   # See who we are connected to on reconnect.
                                                                +   print("Got reconnected to {url}".format(url=nc.connected_url.netloc))
                                                                +
                                                                +await nc.connect(
                                                                +   servers=["nats://demo.nats.io:4222"],
                                                                +   reconnect_time_wait=10,
                                                                +   reconnected_cb=reconnected_cb,
                                                                +   disconnected_cb=disconnected_cb,
                                                                +   )
                                                                +
                                                                +# Do something with the connection.
                                                                +
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                require 'nats/client'
                                                                +
                                                                +NATS.start(servers: ["nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"]) do |nc|
                                                                +   # Do something with the connection
                                                                +   nc.on_reconnect do
                                                                +    puts "Got reconnected to #{nc.connected_server}"
                                                                +  end
                                                                +
                                                                +  nc.on_disconnect do |reason|
                                                                +    puts "Got disconnected! #{reason}"
                                                                +  end
                                                                +end
                                                                +
                                                                +
                                                                + +
                                                                +
                                                                // will throw an exception if connection fails
                                                                +let nc = await connect({
                                                                +    maxReconnectAttempts: 10,
                                                                +    servers: ["nats://demo.nats.io:4222"]
                                                                +});
                                                                +// 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('reconnect', (conn, server) => {
                                                                +    console.log('reconnected to', server);
                                                                +});
                                                                +nc.close();
                                                                +
                                                                +
                                                                + +
                                                                + +
                                                                + +
                                                                +
                                                                +
                                                                + +

                                                                results matching ""

                                                                +
                                                                  + +
                                                                  +
                                                                  + +

                                                                  No results matching ""

                                                                  + +
                                                                  +
                                                                  +
                                                                  + +
                                                                  +
                                                                  + +
                                                                  + + + + + + + + + + + + + + +
                                                                  + + +
                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/reconnect/intro.html b/docs/developer/reconnect/intro.html new file mode 100644 index 0000000..b5b0778 --- /dev/null +++ b/docs/developer/reconnect/intro.html @@ -0,0 +1,2334 @@ + + + + + + + Automatic Reconnections ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                  +
                                                                  + + + + + + + + +
                                                                  + +
                                                                  + +
                                                                  + + + + + + + + +
                                                                  +
                                                                  + +
                                                                  +
                                                                  + +
                                                                  + +

                                                                  Reconnecting

                                                                  +

                                                                  Most, if not all, of the client libraries will reconnect to the server if they are disconnected due to a network problem. The reconnect logic can differ by library, so check your client library's documentation.

                                                                  +

                                                                  In general, the client will try to connect to all of the servers it knows about, either through the URLs provided in connect or the URLs provided by its most recent server. The library may have several options to help control reconnect behavior.

                                                                  +

                                                                  The list of servers used during reconnect is library dependent, but generally is constructed from the list of servers passed to the connect function/options and the list of servers provided by the most recent connected server.

                                                                  +

                                                                  One, sometimes important, detail is that the server URLS provided to clients by servers will use addresses, while the URLS provided to the connect function will usually be host names. As a result, it is possible, on reconnect, for the same server to be tried multiple times without the client knowing about the match.

                                                                  + + +
                                                                  + +
                                                                  +
                                                                  +
                                                                  + +

                                                                  results matching ""

                                                                  +
                                                                    + +
                                                                    +
                                                                    + +

                                                                    No results matching ""

                                                                    + +
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    + +
                                                                    + + + + + + + + + + + + + + +
                                                                    + + +
                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/reconnect/max.html b/docs/developer/reconnect/max.html new file mode 100644 index 0000000..5ec030f --- /dev/null +++ b/docs/developer/reconnect/max.html @@ -0,0 +1,2435 @@ + + + + + + + Set the Number of Reconnect Attempts ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                    +
                                                                    + + + + + + + + +
                                                                    + +
                                                                    + +
                                                                    + + + + + + + + +
                                                                    +
                                                                    + +
                                                                    +
                                                                    + +
                                                                    + +

                                                                    Set the Number of Reconnect Attempts

                                                                    +

                                                                    Applications can set the maximum reconnect attempts. Generally, this will limit the actual number of attempts total, but check your library documentation. For example, in Java, if the client knows about 3 servers and the maximum reconnects is set to 2, it will not try all of the servers. On the other hand, if the maximum is set to 6 it will try all of the servers twice before considering the reconnect a failure and closing.

                                                                    +
                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                    +
                                                                    // Set max reconnects attempts
                                                                    +nc, err := nats.Connect("demo.nats.io", nats.MaxReconnects(10))
                                                                    +if err != nil {
                                                                    +	log.Fatal(err)
                                                                    +}
                                                                    +defer nc.Close()
                                                                    +
                                                                    +// Do something with the connection
                                                                    +
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    Options options = new Options.Builder().
                                                                    +                            server("nats://demo.nats.io:4222").
                                                                    +                            maxReconnects(10). // Set max reconnect attempts
                                                                    +                            build();
                                                                    +Connection nc = Nats.connect(options);
                                                                    +
                                                                    +// Do something with the connection
                                                                    +
                                                                    +nc.close();
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    let nc = NATS.connect({
                                                                    +    maxReconnectAttempts: 10,
                                                                    +    servers: ["nats://demo.nats.io:4222"]
                                                                    +});
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    nc = NATS()
                                                                    +await nc.connect(
                                                                    +   servers=["nats://demo.nats.io:4222"],
                                                                    +   max_reconnect_attempts=10,
                                                                    +   )
                                                                    +
                                                                    +# Do something with the connection
                                                                    +
                                                                    +await nc.close()
                                                                    +
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    require 'nats/client'
                                                                    +
                                                                    +NATS.start(servers: ["nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"], max_reconnect_attempts: 10) do |nc|
                                                                    +   # Do something with the connection
                                                                    +
                                                                    +   # Close the connection
                                                                    +   nc.close
                                                                    +end
                                                                    +
                                                                    +
                                                                    + +
                                                                    +
                                                                    // will throw an exception if connection fails
                                                                    +let nc = await connect({
                                                                    +    maxReconnectAttempts: 10,
                                                                    +    servers: ["nats://demo.nats.io:4222"]
                                                                    +});
                                                                    +nc.close();
                                                                    +
                                                                    +
                                                                    + +
                                                                    + +
                                                                    + +
                                                                    +
                                                                    +
                                                                    + +

                                                                    results matching ""

                                                                    +
                                                                      + +
                                                                      +
                                                                      + +

                                                                      No results matching ""

                                                                      + +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      + + + + + + + + + + + + + + +
                                                                      + + +
                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/reconnect/random.html b/docs/developer/reconnect/random.html new file mode 100644 index 0000000..3c90aa7 --- /dev/null +++ b/docs/developer/reconnect/random.html @@ -0,0 +1,2448 @@ + + + + + + + Avoiding the Thundering Herd ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      +
                                                                      + + + + + + + + +
                                                                      + +
                                                                      + +
                                                                      + + + + + + + + +
                                                                      +
                                                                      + +
                                                                      +
                                                                      + +
                                                                      + +

                                                                      Avoiding the Thundering Herd

                                                                      +

                                                                      When a server goes down, there is a possible anti-pattern called the Thundering Herd where all of the clients try to reconnect immediately creating a denial of service attack. In order to prevent this, most NATS client libraries randomize the servers they attempt to connect to. This setting has no effect if only a single server is used, but in the case of a cluster, randomization, or shuffling, will ensure that no one server bears the brunt of the client reconnect attempts.

                                                                      +

                                                                      However, if you want to disable the randomization process, so that servers are always checked in the same order, you can do that in most libraries with a connection options:

                                                                      +
                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                      +
                                                                      servers := []string{"nats://localhost:1222",
                                                                      +	"nats://localhost:1223",
                                                                      +	"nats://localhost:1224",
                                                                      +}
                                                                      +
                                                                      +nc, err := nats.Connect(strings.Join(servers, ","), nats.DontRandomize())
                                                                      +if err != nil {
                                                                      +	log.Fatal(err)
                                                                      +}
                                                                      +defer nc.Close()
                                                                      +
                                                                      +// Do something with the connection
                                                                      +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      Options options = new Options.Builder().
                                                                      +                            server("nats://demo.nats.io:4222").
                                                                      +                            noRandomize(). // Disable reconnect shuffle
                                                                      +                            build();
                                                                      +Connection nc = Nats.connect(options);
                                                                      +
                                                                      +// Do something with the connection
                                                                      +
                                                                      +nc.close();
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      let nc = NATS.connect({
                                                                      +    noRandomize: false,
                                                                      +    servers: ["nats://127.0.0.1:4443",
                                                                      +        "nats://demo.nats.io:4222"
                                                                      +    ]
                                                                      +});
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      nc = NATS()
                                                                      +await nc.connect(
                                                                      +   servers=[
                                                                      +      "nats://demo.nats.io:1222",
                                                                      +      "nats://demo.nats.io:1223",
                                                                      +      "nats://demo.nats.io:1224"
                                                                      +      ],
                                                                      +   dont_randomize=True,
                                                                      +   )
                                                                      +
                                                                      +# Do something with the connection
                                                                      +
                                                                      +await nc.close()
                                                                      +
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      require 'nats/client'
                                                                      +
                                                                      +NATS.start(servers: ["nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"], dont_randomize_servers: true) do |nc|
                                                                      +   # Do something with the connection
                                                                      +
                                                                      +   # Close the connection
                                                                      +   nc.close
                                                                      +end
                                                                      +
                                                                      +
                                                                      + +
                                                                      +
                                                                      // will throw an exception if connection fails
                                                                      +let nc = await connect({
                                                                      +    noRandomize: false,
                                                                      +    servers: ["nats://127.0.0.1:4443",
                                                                      +        "nats://demo.nats.io:4222"
                                                                      +    ]
                                                                      +});
                                                                      +nc.close();
                                                                      +
                                                                      +
                                                                      + +
                                                                      + +
                                                                      + +
                                                                      +
                                                                      +
                                                                      + +

                                                                      results matching ""

                                                                      +
                                                                        + +
                                                                        +
                                                                        + +

                                                                        No results matching ""

                                                                        + +
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        + +
                                                                        + + + + + + + + + + + + + + +
                                                                        + + +
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/reconnect/wait.html b/docs/developer/reconnect/wait.html new file mode 100644 index 0000000..a296150 --- /dev/null +++ b/docs/developer/reconnect/wait.html @@ -0,0 +1,2435 @@ + + + + + + + Pausing Between Reconnect Attempts ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        +
                                                                        + + + + + + + + +
                                                                        + +
                                                                        + +
                                                                        + + + + + + + + +
                                                                        +
                                                                        + +
                                                                        +
                                                                        + +
                                                                        + +

                                                                        Pausing Between Reconnect Attempts

                                                                        +

                                                                        It doesn’t make much sense to try to connect to the same server over and over. To prevent this sort of thrashing, and wasted reconnect attempts, libraries provide a wait setting. This setting will pause the reconnect logic if the same server is being tried multiple times in a row. In the previous example, if you have 3 servers and 6 attempts, the Java library would loop over the three servers. If none were connectable, it will then try all three again. However, the Java client doesn’t wait between each attempt, only when trying the same server again, so in that example the library may never wait. If on the other hand, you only provide a single server URL and 6 attempts, the library will wait between each attempt.

                                                                        +
                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                        +
                                                                        // Set reconnect interval to 10 seconds
                                                                        +nc, err := nats.Connect("demo.nats.io", nats.ReconnectWait(10*time.Second))
                                                                        +if err != nil {
                                                                        +	log.Fatal(err)
                                                                        +}
                                                                        +defer nc.Close()
                                                                        +
                                                                        +// Do something with the connection
                                                                        +
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        Options options = new Options.Builder().
                                                                        +                            server("nats://demo.nats.io:4222").
                                                                        +                            reconnectWait(Duration.ofSeconds(10)).  // Set Reconnect Wait
                                                                        +                            build();
                                                                        +Connection nc = Nats.connect(options);
                                                                        +
                                                                        +// Do something with the connection
                                                                        +
                                                                        +nc.close();
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        let nc = NATS.connect({
                                                                        +    reconnectTimeWait: 10 * 1000, //10s
                                                                        +    servers: ["nats://demo.nats.io:4222"]
                                                                        +});
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        nc = NATS()
                                                                        +await nc.connect(
                                                                        +   servers=["nats://demo.nats.io:4222"],
                                                                        +   reconnect_time_wait=10,
                                                                        +   )
                                                                        +
                                                                        +# Do something with the connection
                                                                        +
                                                                        +await nc.close()
                                                                        +
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        require 'nats/client'
                                                                        +
                                                                        +NATS.start(servers: ["nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"], reconnect_time_wait: 10) do |nc|
                                                                        +   # Do something with the connection
                                                                        +
                                                                        +   # Close the connection
                                                                        +   nc.close
                                                                        +end
                                                                        +
                                                                        +
                                                                        + +
                                                                        +
                                                                        // will throw an exception if connection fails
                                                                        +let nc = await connect({
                                                                        +    reconnectTimeWait: 10*1000, //10s
                                                                        +    servers: ["nats://demo.nats.io:4222"]
                                                                        +});
                                                                        +nc.close();
                                                                        +
                                                                        +
                                                                        + +
                                                                        + +
                                                                        + +
                                                                        +
                                                                        +
                                                                        + +

                                                                        results matching ""

                                                                        +
                                                                          + +
                                                                          +
                                                                          + +

                                                                          No results matching ""

                                                                          + +
                                                                          +
                                                                          +
                                                                          + +
                                                                          +
                                                                          + +
                                                                          + + + + + + + + + + + + + + +
                                                                          + + +
                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/resources/ring_buffer.png b/docs/developer/resources/ring_buffer.png new file mode 100644 index 0000000..44fd040 Binary files /dev/null and b/docs/developer/resources/ring_buffer.png differ diff --git a/docs/developer/resources/start_positions.png b/docs/developer/resources/start_positions.png new file mode 100644 index 0000000..2dd7fa9 Binary files /dev/null and b/docs/developer/resources/start_positions.png differ diff --git a/docs/developer/security/creds.html b/docs/developer/security/creds.html new file mode 100644 index 0000000..27c8b0c --- /dev/null +++ b/docs/developer/security/creds.html @@ -0,0 +1,2385 @@ + + + + + + + Authenticating with a Credentials File ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                          +
                                                                          + + + + + + + + +
                                                                          + +
                                                                          + +
                                                                          + + + + + + + + +
                                                                          +
                                                                          + +
                                                                          +
                                                                          + +
                                                                          + +

                                                                          Authenticating with User Credentials File

                                                                          +

                                                                          The 2.0 version of NATS server introduced the idea of JWT-based authentication. Clients interact with this new scheme using a user JWT and the private key from an NKey pair. To help make connecting with a JWT easier, the client libraries support the concept of a credentials file. This file contains both the private key and the JWT and can be generated with the nsc tool. The contents will look like the following and should be protected because it contains a private key. This creds file is unused and only for example purposes.

                                                                          +
                                                                          -----BEGIN NATS USER JWT-----
                                                                          +eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJUVlNNTEtTWkJBN01VWDNYQUxNUVQzTjRISUw1UkZGQU9YNUtaUFhEU0oyWlAzNkVMNVJBIiwiaWF0IjoxNTU4MDQ1NTYyLCJpc3MiOiJBQlZTQk0zVTQ1REdZRVVFQ0tYUVM3QkVOSFdHN0tGUVVEUlRFSEFKQVNPUlBWV0JaNEhPSUtDSCIsIm5hbWUiOiJvbWVnYSIsInN1YiI6IlVEWEIyVk1MWFBBU0FKN1pEVEtZTlE3UU9DRldTR0I0Rk9NWVFRMjVIUVdTQUY3WlFKRUJTUVNXIiwidHlwZSI6InVzZXIiLCJuYXRzIjp7InB1YiI6e30sInN1YiI6e319fQ.6TQ2ilCDb6m2ZDiJuj_D_OePGXFyN3Ap2DEm3ipcU5AhrWrNvneJryWrpgi_yuVWKo1UoD5s8bxlmwypWVGFAA
                                                                          +------END NATS USER JWT------
                                                                          +
                                                                          +************************* IMPORTANT *************************
                                                                          +NKEY Seed printed below can be used to sign and prove identity.
                                                                          +NKEYs are sensitive and should be treated as secrets.
                                                                          +
                                                                          +-----BEGIN USER NKEY SEED-----
                                                                          +SUAOY5JZ2WJKVR4UO2KJ2P3SW6FZFNWEOIMAXF4WZEUNVQXXUOKGM55CYE
                                                                          +------END USER NKEY SEED------
                                                                          +
                                                                          +*************************************************************
                                                                          +
                                                                          +

                                                                          Given a creds file, a client can authenticate as a specific user belonging to a specific account:

                                                                          +
                                                                          + + + + + + + + + + + + + +
                                                                          +
                                                                          nc, err := nats.Connect("localhost", nats.UserCredentials("path_to_creds_file"))
                                                                          +if err != nil {
                                                                          +	log.Fatal(err)
                                                                          +}
                                                                          +defer nc.Close()
                                                                          +
                                                                          +// Do something with the connection
                                                                          +
                                                                          +
                                                                          +
                                                                          + +
                                                                          +
                                                                          Options options = new Options.Builder().
                                                                          +            server("nats://localhost:4222").
                                                                          +            authHandler(Nats.credentials("path_to_creds_file")).
                                                                          +            build();
                                                                          +Connection nc = Nats.connect(options);
                                                                          +
                                                                          +// Do something with the connection
                                                                          +
                                                                          +nc.close();
                                                                          +
                                                                          +
                                                                          + +
                                                                          + +
                                                                          + +
                                                                          +
                                                                          +
                                                                          + +

                                                                          results matching ""

                                                                          +
                                                                            + +
                                                                            +
                                                                            + +

                                                                            No results matching ""

                                                                            + +
                                                                            +
                                                                            +
                                                                            + +
                                                                            +
                                                                            + +
                                                                            + + + + + + + + + + + + + + +
                                                                            + + +
                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/security/intro.html b/docs/developer/security/intro.html new file mode 100644 index 0000000..90d13d9 --- /dev/null +++ b/docs/developer/security/intro.html @@ -0,0 +1,2332 @@ + + + + + + + Securing Connections ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                            +
                                                                            + + + + + + + + +
                                                                            + +
                                                                            + +
                                                                            + + + + + + + + +
                                                                            +
                                                                            + +
                                                                            +
                                                                            + +
                                                                            + +

                                                                            Securing Connections

                                                                            +

                                                                            NATS provides several forms of security for your messages. First, you can turn on authorization which limits access to the NATS server. Second, access to specific subjects can be controlled. Third, you can use TLS to encrypt traffic between clients and the server. Finally, TLS can be used to verify client identities using certificates. By combining all of these methods you can protect access to data and data in motion.

                                                                            +

                                                                            The client doesn't have control over access controls, but clients do provide the configurations required to authenticate with the server and to turn on TLS.

                                                                            + + +
                                                                            + +
                                                                            +
                                                                            +
                                                                            + +

                                                                            results matching ""

                                                                            +
                                                                              + +
                                                                              +
                                                                              + +

                                                                              No results matching ""

                                                                              + +
                                                                              +
                                                                              +
                                                                              + +
                                                                              +
                                                                              + +
                                                                              + + + + + + + + + + + + + + +
                                                                              + + +
                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/security/nkey.html b/docs/developer/security/nkey.html new file mode 100644 index 0000000..99f0908 --- /dev/null +++ b/docs/developer/security/nkey.html @@ -0,0 +1,2396 @@ + + + + + + + Authenticating with an NKey ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                              +
                                                                              + + + + + + + + +
                                                                              + +
                                                                              + +
                                                                              + + + + + + + + +
                                                                              +
                                                                              + +
                                                                              +
                                                                              + +
                                                                              + +

                                                                              Authenticating with an NKey

                                                                              +

                                                                              The 2.0 version of NATS server introduces a new challenge response authentication option. This challenge response is based on a wrapper we call NKeys which uses ED25519 signing. The server can use these keys in several ways for authentication. The simplest is for the server to be configured with a list of known public keys and for the clients to respond to the challenge by signing it with its private key. This challenge-response insures security by insuring that the client has the private key, but also protects the private key from the server which never has to actually see it.

                                                                              +

                                                                              Handling challenge response may require more than just a setting in the connection options, depending on the client library.

                                                                              +
                                                                              + + + + + + + + + + + + + +
                                                                              +
                                                                              opt, err := nats.NkeyOptionFromSeed("seed.txt")
                                                                              +if err != nil {
                                                                              +	log.Fatal(err)
                                                                              +}
                                                                              +nc, err := nats.Connect("localhost", opt)
                                                                              +if err != nil {
                                                                              +	log.Fatal(err)
                                                                              +}
                                                                              +defer nc.Close()
                                                                              +
                                                                              +// Do something with the connection
                                                                              +
                                                                              +
                                                                              +
                                                                              + +
                                                                              +
                                                                              NKey theNKey = NKey.createUser(null); // really should load from somewhere
                                                                              +Options options = new Options.Builder().
                                                                              +            server("nats://localhost:4222").
                                                                              +            authHandler(new AuthHandler(){
                                                                              +                public char[] getID() {
                                                                              +                    try {
                                                                              +                        return theNKey.getPublicKey();
                                                                              +                    } catch (GeneralSecurityException|IOException|NullPointerException ex) {
                                                                              +                        return null;
                                                                              +                    }
                                                                              +                }
                                                                              +
                                                                              +                public byte[] sign(byte[] nonce) {
                                                                              +                    try {
                                                                              +                        return theNKey.sign(nonce);
                                                                              +                    } catch (GeneralSecurityException|IOException|NullPointerException ex) {
                                                                              +                        return null;
                                                                              +                    }
                                                                              +                }
                                                                              +
                                                                              +                public char[] getJWT() {
                                                                              +                    return null;
                                                                              +                }
                                                                              +            }).
                                                                              +            build();
                                                                              +Connection nc = Nats.connect(options);
                                                                              +
                                                                              +// Do something with the connection
                                                                              +
                                                                              +nc.close();
                                                                              +
                                                                              +
                                                                              + +
                                                                              + +
                                                                              + +
                                                                              +
                                                                              +
                                                                              + +

                                                                              results matching ""

                                                                              +
                                                                                + +
                                                                                +
                                                                                + +

                                                                                No results matching ""

                                                                                + +
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                + +
                                                                                + + + + + + + + + + + + + + +
                                                                                + + +
                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/security/tls.html b/docs/developer/security/tls.html new file mode 100644 index 0000000..815f403 --- /dev/null +++ b/docs/developer/security/tls.html @@ -0,0 +1,2741 @@ + + + + + + + Encrypting Connections with TLS ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                +
                                                                                + + + + + + + + +
                                                                                + +
                                                                                + +
                                                                                + + + + + + + + +
                                                                                +
                                                                                + +
                                                                                +
                                                                                + +
                                                                                + +

                                                                                Encrypting Connections with TLS

                                                                                +

                                                                                While authentication limits which clients can connect, TLS can be used to check the server’s identity and the client’s identity and will encrypt the traffic between the two. The most secure version of TLS with NATS is to use verified client certificates. In this mode, the client can check that it trusts the certificate sent by gnatsd but the server will also check that it trusts the certificate sent by the client. From an applications perspective connecting to a server that does not verify client certificates may appear identical. Under the covers, disabling TLS verification removes the server side check on the client’s certificate. When started in TLS mode, gnatsd will require all clients to connect with TLS. Moreover, if configured to connect with TLS, client libraries will fail to connect to a server without TLS.

                                                                                +

                                                                                The Java examples repository contains certificates for starting the server in TLS mode.

                                                                                +
                                                                                > gnatsd -c /src/main/resources/tls.conf
                                                                                + or
                                                                                +> gnatsd -c /src/main/resources/tls_verify.conf
                                                                                +
                                                                                +

                                                                                Connecting with TLS

                                                                                +

                                                                                Connecting to a server with TLS is primarily an exercise in setting up the certificate and trust managers. For example:

                                                                                +
                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                +
                                                                                nc, err := nats.Connect("localhost",
                                                                                +	nats.ClientCert("resources/certs/cert.pem", "resources/certs/key.pem"),
                                                                                +	nats.RootCAs("resources/certs/ca.pem"))
                                                                                +if err != nil {
                                                                                +	log.Fatal(err)
                                                                                +}
                                                                                +defer nc.Close()
                                                                                +
                                                                                +// Do something with the connection
                                                                                +
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                class SSLUtils {
                                                                                +    public static String KEYSTORE_PATH = "src/main/resources/keystore.jks";
                                                                                +    public static String TRUSTSTORE_PATH = "src/main/resources/cacerts";
                                                                                +    public static String STORE_PASSWORD = "password";
                                                                                +    public static String KEY_PASSWORD = "password";
                                                                                +    public static String ALGORITHM = "SunX509";
                                                                                +
                                                                                +    public static KeyStore loadKeystore(String path) throws Exception {
                                                                                +        KeyStore store = KeyStore.getInstance("JKS");
                                                                                +        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("nats://localhost:4222").
                                                                                +                                sslContext(ctx). // Set the SSL context
                                                                                +                                build();
                                                                                +            Connection nc = Nats.connect(options);
                                                                                +            
                                                                                +            // Do something with the connection
                                                                                +
                                                                                +            nc.close();
                                                                                +        } catch (Exception e) {
                                                                                +            e.printStackTrace();
                                                                                +        }
                                                                                +    }
                                                                                +}
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                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]
                                                                                +    }
                                                                                +});
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                nc = NATS()
                                                                                +
                                                                                +ssl_ctx = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH)
                                                                                +ssl_ctx.load_verify_locations('ca.pem')
                                                                                +ssl_ctx.load_cert_chain(certfile='client-cert.pem',
                                                                                +                        keyfile='client-key.pem')
                                                                                +await nc.connect(io_loop=loop, tls=ssl_ctx)
                                                                                +
                                                                                +await nc.connect(servers=["nats://demo.nats.io:4222"], tls=ssl_ctx)
                                                                                +
                                                                                +# Do something with the connection.
                                                                                +
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                EM.run do
                                                                                +
                                                                                +  options = {
                                                                                +    :servers => [
                                                                                +      'nats://localhost:4222',
                                                                                +    ],
                                                                                +    :tls => {
                                                                                +      :private_key_file => './spec/configs/certs/key.pem',
                                                                                +      :cert_chain_file  => './spec/configs/certs/server.pem'
                                                                                +    }
                                                                                +  }
                                                                                +
                                                                                +  NATS.connect(options) do |nc|
                                                                                +    puts "#{Time.now.to_f} - Connected to NATS at #{nc.connected_server}"
                                                                                +
                                                                                +    nc.subscribe("hello") do |msg|
                                                                                +      puts "#{Time.now.to_f} - Received: #{msg}"
                                                                                +    end
                                                                                +
                                                                                +    nc.flush do
                                                                                +      nc.publish("hello", "world")
                                                                                +    end
                                                                                +
                                                                                +    EM.add_periodic_timer(0.1) do
                                                                                +      next unless nc.connected?
                                                                                +      nc.publish("hello", "hello")
                                                                                +    end
                                                                                +
                                                                                +    # Set default callbacks
                                                                                +    nc.on_error do |e|
                                                                                +      puts "#{Time.now.to_f } - Error: #{e}"
                                                                                +    end
                                                                                +
                                                                                +    nc.on_disconnect do |reason|
                                                                                +      puts "#{Time.now.to_f} - Disconnected: #{reason}"
                                                                                +    end
                                                                                +
                                                                                +    nc.on_reconnect do |nc|
                                                                                +      puts "#{Time.now.to_f} - Reconnected to NATS server at #{nc.connected_server}"
                                                                                +    end
                                                                                +
                                                                                +    nc.on_close do
                                                                                +      puts "#{Time.now.to_f} - Connection to NATS closed"
                                                                                +      EM.stop
                                                                                +    end
                                                                                +  end
                                                                                +end
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                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]
                                                                                +    }
                                                                                +});
                                                                                +
                                                                                +
                                                                                + +
                                                                                +

                                                                                Connecting with the TLS Protocol

                                                                                +

                                                                                Some clients may support the tls protocol as well as a manual setting to turn on TLS. However, in that case there is likely some form of default or environmental settings to allow the TLS libraries to find certificate and trust stores.

                                                                                +
                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                +
                                                                                nc, err := nats.Connect("localhost",
                                                                                +	nats.Secure(),
                                                                                +	nats.RootCAs("resources/certs/ca.pem")) // May need this if server is using self-signed certificate
                                                                                +if err != nil {
                                                                                +	log.Fatal(err)
                                                                                +}
                                                                                +defer nc.Close()
                                                                                +
                                                                                +// Do something with the connection
                                                                                +
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                class SSLUtils2 {
                                                                                +    public static String KEYSTORE_PATH = "src/main/resources/keystore.jks";
                                                                                +    public static String TRUSTSTORE_PATH = "src/main/resources/cacerts";
                                                                                +    public static String STORE_PASSWORD = "password";
                                                                                +    public static String KEY_PASSWORD = "password";
                                                                                +    public static String ALGORITHM = "SunX509";
                                                                                +
                                                                                +    public static KeyStore loadKeystore(String path) throws Exception {
                                                                                +        KeyStore store = KeyStore.getInstance("JKS");
                                                                                +        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("tls://localhost:4222"). // Use the TLS protocol
                                                                                +                                build();
                                                                                +            Connection nc = Nats.connect(options);
                                                                                +            
                                                                                +            // Do something with the connection
                                                                                +
                                                                                +            nc.close();
                                                                                +        } catch (Exception e) {
                                                                                +            e.printStackTrace();
                                                                                +        }
                                                                                +    }
                                                                                +}
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                let nc = NATS.connect({
                                                                                +    url: "tls://demo.nats.io:4443",
                                                                                +    tls: true
                                                                                +});
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                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("tls://demo.nats.io:4443", loop=loop)
                                                                                +
                                                                                +    async def message_handler(msg):
                                                                                +        subject = msg.subject
                                                                                +        reply = msg.reply
                                                                                +        data = msg.data.decode()
                                                                                +        print("Received a message on '{subject} {reply}': {data}".format(
                                                                                +            subject=subject, reply=reply, data=data))
                                                                                +
                                                                                +    # Simple publisher and async subscriber via coroutine.
                                                                                +    sid = await nc.subscribe("foo", cb=message_handler)
                                                                                +    await nc.flush()
                                                                                +
                                                                                +    # Stop receiving after 2 messages.
                                                                                +    await nc.auto_unsubscribe(sid, 2)
                                                                                +    await nc.publish("foo", b'Hello')
                                                                                +    await nc.publish("foo", b'World')
                                                                                +    await nc.publish("foo", b'!!!!!')
                                                                                +    await asyncio.sleep(1, loop=loop)
                                                                                +    await nc.close()
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                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 => [
                                                                                +      'nats://demo.nats.io:4443',
                                                                                +    ],
                                                                                +    :tls => {}
                                                                                +  }
                                                                                +
                                                                                +  NATS.connect(options) do |nc|
                                                                                +    puts :connected
                                                                                +  end
                                                                                +end
                                                                                +
                                                                                +
                                                                                + +
                                                                                +
                                                                                // will throw an exception if connection fails
                                                                                +let nc = await connect({
                                                                                +    url: "tls://demo.nats.io:4443"
                                                                                +});
                                                                                +
                                                                                +nc.close();
                                                                                +
                                                                                +
                                                                                + +
                                                                                + +
                                                                                + +
                                                                                +
                                                                                +
                                                                                + +

                                                                                results matching ""

                                                                                +
                                                                                  + +
                                                                                  +
                                                                                  + +

                                                                                  No results matching ""

                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + +
                                                                                  + + + + + + + + + + + + + + +
                                                                                  + + +
                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/security/token.html b/docs/developer/security/token.html new file mode 100644 index 0000000..c1a6715 --- /dev/null +++ b/docs/developer/security/token.html @@ -0,0 +1,2515 @@ + + + + + + + Authenticating with a Token ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                  +
                                                                                  + + + + + + + + +
                                                                                  + +
                                                                                  + +
                                                                                  + + + + + + + + +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  + +
                                                                                  + +

                                                                                  Authenticating with a Token

                                                                                  +

                                                                                  Tokens are basically random strings, much like a password, and can provide a simple authentication mechanism in some situations. However, tokens are only as safe as they are secret so other authentication schemes can provide more security in large installations.

                                                                                  +

                                                                                  For this example, start the server using:

                                                                                  +
                                                                                  > gnatsd --auth mytoken
                                                                                  +
                                                                                  +

                                                                                  The code uses localhost:4222 so that you can start the server on your machine to try them out.

                                                                                  +

                                                                                  Connecting with a Token

                                                                                  +
                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                  +
                                                                                  // Set a token
                                                                                  +nc, err := nats.Connect("localhost", nats.Token("mytoken"))
                                                                                  +if err != nil {
                                                                                  +	log.Fatal(err)
                                                                                  +}
                                                                                  +defer nc.Close()
                                                                                  +
                                                                                  +// Do something with the connection
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  Options options = new Options.Builder().
                                                                                  +                            server("nats://localhost:4222").
                                                                                  +                            token("mytoken"). // Set a token
                                                                                  +                            build();
                                                                                  +Connection nc = Nats.connect(options);
                                                                                  +
                                                                                  +// Do something with the connection
                                                                                  +
                                                                                  +nc.close();
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  let nc = NATS.connect({url: `nats://127.0.0.1:${port}`, token: "mytoken!"});
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  nc = NATS()
                                                                                  +
                                                                                  +await nc.connect(servers=["nats://mytoken@demo.nats.io:4222"])
                                                                                  +
                                                                                  +# Do something with the connection.
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  NATS.start(token: "deadbeef") do |nc|
                                                                                  +  puts "Connected using token"
                                                                                  +end
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  let nc = await connect({url: server.nats, token: "mytoken"});
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +

                                                                                  Connecting with a Token in the URL

                                                                                  +

                                                                                  Some client libraries will allow you to pass the token as part of the server URL using the form:

                                                                                  +
                                                                                  +

                                                                                  nats://token@server:port

                                                                                  +
                                                                                  +

                                                                                  Again, once you construct this URL you can connect as if this was a normal URL.

                                                                                  +
                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                  +
                                                                                  // Token in URL
                                                                                  +nc, err := nats.Connect("mytoken@localhost")
                                                                                  +if err != nil {
                                                                                  +	log.Fatal(err)
                                                                                  +}
                                                                                  +defer nc.Close()
                                                                                  +
                                                                                  +// Do something with the connection
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  Connection nc = Nats.connect("nats://mytoken@localhost:4222");//Token in URL
                                                                                  +
                                                                                  +// Do something with the connection
                                                                                  +
                                                                                  +nc.close();
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  let url = `nats://mytoken!@127.0.0.1:${port}`;
                                                                                  +let nc = NATS.connect({url: url});
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  nc = NATS()
                                                                                  +
                                                                                  +await nc.connect(servers=["nats://mytoken@demo.nats.io:4222"])
                                                                                  +
                                                                                  +# Do something with the connection.
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  NATS.start("deadbeef@127.0.0.1:4222") do |nc|
                                                                                  +  puts "Connected using token!"
                                                                                  +end
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  +
                                                                                  let url = `nats://:mytoken!@127.0.0.1:${port}`;
                                                                                  +let nc = await connect({url: url});
                                                                                  +
                                                                                  +
                                                                                  + +
                                                                                  + +
                                                                                  + +
                                                                                  +
                                                                                  +
                                                                                  + +

                                                                                  results matching ""

                                                                                  +
                                                                                    + +
                                                                                    +
                                                                                    + +

                                                                                    No results matching ""

                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    + +
                                                                                    + + + + + + + + + + + + + + +
                                                                                    + + +
                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/security/userpass.html b/docs/developer/security/userpass.html new file mode 100644 index 0000000..8246c59 --- /dev/null +++ b/docs/developer/security/userpass.html @@ -0,0 +1,2549 @@ + + + + + + + Authenticating with a User and Password ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                    +
                                                                                    + + + + + + + + +
                                                                                    + +
                                                                                    + +
                                                                                    + + + + + + + + +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    + +
                                                                                    + +

                                                                                    Authenticating with a User and Password

                                                                                    +

                                                                                    For this example, start the server using:

                                                                                    +
                                                                                    > gnatsd --user myname --pass password
                                                                                    +
                                                                                    +

                                                                                    You can encrypt passwords to pass to gnatsd using a simple tool provided by the server:

                                                                                    +
                                                                                    > go run mkpasswd.go -p
                                                                                    +> password: password
                                                                                    +> bcrypt hash: $2a$11$1oJy/wZYNTxr9jNwMNwS3eUGhBpHT3On8CL9o7ey89mpgo88VG6ba
                                                                                    +
                                                                                    +

                                                                                    and use the hashed password in the server config. The client still uses the plain text version.

                                                                                    +

                                                                                    The code uses localhost:4222 so that you can start the server on your machine to try them out.

                                                                                    +

                                                                                    Connecting with a User/Password

                                                                                    +

                                                                                    When logging in with a password gnatsd will take either a plain text password or an encrypted password.

                                                                                    +
                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                    +
                                                                                    // Set a user and plain text password
                                                                                    +nc, err := nats.Connect("localhost", nats.UserInfo("myname", "password"))
                                                                                    +if err != nil {
                                                                                    +	log.Fatal(err)
                                                                                    +}
                                                                                    +defer nc.Close()
                                                                                    +
                                                                                    +// Do something with the connection
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    Options options = new Options.Builder().
                                                                                    +                            server("nats://localhost:4222").
                                                                                    +                            userInfo("myname","password"). // Set a user and plain text password
                                                                                    +                            build();
                                                                                    +Connection nc = Nats.connect(options);
                                                                                    +
                                                                                    +// Do something with the connection
                                                                                    +
                                                                                    +nc.close();
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    let nc = NATS.connect({url: server.nats, user: "myname", pass: "password"});
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    nc = NATS()
                                                                                    +
                                                                                    +await nc.connect(servers=["nats://myname:password@demo.nats.io:4222"])
                                                                                    +
                                                                                    +# Do something with the connection.
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    require 'nats/client'
                                                                                    +
                                                                                    +NATS.start(servers:["nats://myname:password@127.0.0.1:4222"], name: "my-connection") do |nc|
                                                                                    +   nc.on_error do |e|
                                                                                    +    puts "Error: #{e}"
                                                                                    +  end
                                                                                    +
                                                                                    +   nc.on_reconnect do
                                                                                    +    puts "Got reconnected to #{nc.connected_server}"
                                                                                    +  end
                                                                                    +
                                                                                    +  nc.on_disconnect do |reason|
                                                                                    +    puts "Got disconnected! #{reason}"
                                                                                    +  end
                                                                                    +
                                                                                    +  nc.close
                                                                                    +end
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    let nc = await connect({url: server.nats, user: "myname", pass: "password"});
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +

                                                                                    Connecting with a User/Password in the URL

                                                                                    +

                                                                                    Most clients make it easy to pass the user name and password by accepting them in the URL for the server. This standard format is:

                                                                                    +
                                                                                    +

                                                                                    nats://user:password@server:port

                                                                                    +
                                                                                    +

                                                                                    Using this format, you can connect to a server using authentication as easily as you connected with a URL:

                                                                                    +
                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                    +
                                                                                    // Set a user and plain text password
                                                                                    +nc, err := nats.Connect("myname:password@localhost")
                                                                                    +if err != nil {
                                                                                    +	log.Fatal(err)
                                                                                    +}
                                                                                    +defer nc.Close()
                                                                                    +
                                                                                    +// Do something with the connection
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    Connection nc = Nats.connect("nats://myname:password@localhost:4222");
                                                                                    +
                                                                                    +// Do something with the connection
                                                                                    +
                                                                                    +nc.close();
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    let url = `nats://myname:password@127.0.0.1:${port}`;
                                                                                    +let nc = NATS.connect(url);
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    nc = NATS()
                                                                                    +
                                                                                    +await nc.connect(servers=["nats://myname:password@demo.nats.io:4222"])
                                                                                    +
                                                                                    +# Do something with the connection.
                                                                                    +
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    require 'nats/client'
                                                                                    +
                                                                                    +NATS.start(servers:["nats://myname:password@127.0.0.1:4222"], name: "my-connection") do |nc|
                                                                                    +   nc.on_error do |e|
                                                                                    +    puts "Error: #{e}"
                                                                                    +  end
                                                                                    +
                                                                                    +   nc.on_reconnect do
                                                                                    +    puts "Got reconnected to #{nc.connected_server}"
                                                                                    +  end
                                                                                    +
                                                                                    +  nc.on_disconnect do |reason|
                                                                                    +    puts "Got disconnected! #{reason}"
                                                                                    +  end
                                                                                    +
                                                                                    +  nc.close
                                                                                    +end
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    +
                                                                                    let url = `nats://myname:password@127.0.0.1:${port}`;
                                                                                    +let nc = await connect({url: url});
                                                                                    +
                                                                                    +
                                                                                    + +
                                                                                    + +
                                                                                    + +
                                                                                    +
                                                                                    +
                                                                                    + +

                                                                                    results matching ""

                                                                                    +
                                                                                      + +
                                                                                      +
                                                                                      + +

                                                                                      No results matching ""

                                                                                      + +
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + +
                                                                                      + + + + + + + + + + + + + + +
                                                                                      + + +
                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/sending/caches.html b/docs/developer/sending/caches.html new file mode 100644 index 0000000..42d87cc --- /dev/null +++ b/docs/developer/sending/caches.html @@ -0,0 +1,2466 @@ + + + + + + + Caches, Flush and Ping ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                      +
                                                                                      + + + + + + + + +
                                                                                      + +
                                                                                      + +
                                                                                      + + + + + + + + +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      + +
                                                                                      + +

                                                                                      Caches, Flush and Ping

                                                                                      +

                                                                                      For performance reasons, most if not all, of the client libraries will cache outgoing data so that bigger chunks can be written to the network at one time. This may be as simple as a byte buffer that stores up a few messages before being pushed to the network.

                                                                                      +

                                                                                      These buffers do not hold messages forever, generally they are designed to hold messages in high throughput scenarios, while still providing good latency in low throughput situations.

                                                                                      +

                                                                                      It is the libraries job to make sure messages flow in a high performance manner. But there may be times when an application needs to know that a message has "hit the wire." In this case, applications can use a flush call to tell the library to move data through the system.

                                                                                      +
                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                      +
                                                                                      nc, err := nats.Connect("demo.nats.io")
                                                                                      +if err != nil {
                                                                                      +	log.Fatal(err)
                                                                                      +}
                                                                                      +defer nc.Close()
                                                                                      +
                                                                                      +if err := nc.Publish("updates", []byte("All is Well")); 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)
                                                                                      +}
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                                                      +
                                                                                      +nc.publish("updates", "All is Well".getBytes(StandardCharsets.UTF_8));
                                                                                      +nc.flush(Duration.ofSeconds(1)); // Flush the message queue
                                                                                      +
                                                                                      +nc.close();
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      let nc = NATS.connect({url: "nats://demo.nats.io:4222"});
                                                                                      +let start = Date.now();
                                                                                      +nc.flush(() => {
                                                                                      +    t.log('round trip completed in', Date.now() - start, 'ms');
                                                                                      +});
                                                                                      +
                                                                                      +nc.publish('foo');
                                                                                      +// function in flush is optional
                                                                                      +nc.flush();
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      nc = NATS()
                                                                                      +
                                                                                      +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                                                      +
                                                                                      +await nc.publish("updates", b'All is Well')
                                                                                      +
                                                                                      +# 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)
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      require 'nats/client'
                                                                                      +require 'fiber'
                                                                                      +
                                                                                      +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                                                                      +  nc.subscribe("updates") do |msg|
                                                                                      +    puts msg
                                                                                      +  end
                                                                                      +
                                                                                      +  nc.publish("updates", "All is Well")
                                                                                      +
                                                                                      +  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
                                                                                      +
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +
                                                                                      let nc = await connect({
                                                                                      +    url: "nats://demo.nats.io:4222"
                                                                                      +});
                                                                                      +
                                                                                      +// 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(() => {
                                                                                      +    t.log('round trip completed in', Date.now() - start, 'ms');
                                                                                      +});
                                                                                      +
                                                                                      +nc.publish('foo');
                                                                                      +
                                                                                      +// another way, simply wait for the promise to resolve
                                                                                      +await nc.flush();
                                                                                      +
                                                                                      +nc.close();
                                                                                      +
                                                                                      +
                                                                                      + +
                                                                                      +

                                                                                      Flush and Ping/Pong

                                                                                      +

                                                                                      Many of the client libraries use the PING/PONG interaction built into the NATS protocol to insure that flush pushed all of the cached messages to the server. When an application calls flush most libraries will put a PING on the outgoing queue of messages, and wait for the server to send PONG before saying that the flush was successful.

                                                                                      + + +
                                                                                      + +
                                                                                      +
                                                                                      +
                                                                                      + +

                                                                                      results matching ""

                                                                                      +
                                                                                        + +
                                                                                        +
                                                                                        + +

                                                                                        No results matching ""

                                                                                        + +
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + + + + + + + + + + + +
                                                                                        + + +
                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/sending/intro.html b/docs/developer/sending/intro.html new file mode 100644 index 0000000..2b19956 --- /dev/null +++ b/docs/developer/sending/intro.html @@ -0,0 +1,2431 @@ + + + + + + + Sending Messages ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        + +
                                                                                        + +

                                                                                        Sending Messages

                                                                                        +

                                                                                        NATS sends and receives messages using a protocol that includes a target subject, an optional reply subject and an array of bytes. Some libraries may provide helpers to convert other data formats to and from bytes, but the NATS server will treat all messages as opaque byte arrays.

                                                                                        +

                                                                                        All of the NATS clients are designed to make sending a message simple. For example, to send the string “All is Well” to the “updates” subject as a UTF-8 string of bytes you would do:

                                                                                        +
                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        nc, err := nats.Connect("demo.nats.io")
                                                                                        +if err != nil {
                                                                                        +	log.Fatal(err)
                                                                                        +}
                                                                                        +defer nc.Close()
                                                                                        +
                                                                                        +if err := nc.Publish("updates", []byte("All is Well")); err != nil {
                                                                                        +	log.Fatal(err)
                                                                                        +}
                                                                                        +// Make sure the message goes through before we close
                                                                                        +nc.Flush()
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                                                        +
                                                                                        +nc.publish("updates", "All is Well".getBytes(StandardCharsets.UTF_8));
                                                                                        +
                                                                                        +// Make sure the message goes through before we close
                                                                                        +nc.flush(Duration.ZERO);
                                                                                        +nc.close();
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        let nc = NATS.connect({url: "nats://demo.nats.io:4222", preserveBuffers: true});
                                                                                        +let buf = Buffer.allocUnsafe(12);
                                                                                        +buf.fill("All is well");
                                                                                        +nc.publish('updates', buf);
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        nc = NATS()
                                                                                        +
                                                                                        +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                                                        +
                                                                                        +await nc.publish("updates", b'All is Well')
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        require 'nats/client'
                                                                                        +
                                                                                        +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                                                                        +  nc.publish("updates", "All is Well")
                                                                                        +end
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        +
                                                                                        let nc = await connect({
                                                                                        +    url: "nats://demo.nats.io:4222",
                                                                                        +    payload: Payload.BINARY
                                                                                        +});
                                                                                        +
                                                                                        +let buf = Buffer.allocUnsafe(12);
                                                                                        +buf.fill("All is Well");
                                                                                        +nc.publish('updates', buf);
                                                                                        +
                                                                                        +
                                                                                        + +
                                                                                        + +
                                                                                        + +
                                                                                        +
                                                                                        +
                                                                                        + +

                                                                                        results matching ""

                                                                                        +
                                                                                          + +
                                                                                          +
                                                                                          + +

                                                                                          No results matching ""

                                                                                          + +
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + +
                                                                                          + + + + + + + + + + + + + + +
                                                                                          + + +
                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/sending/replyto.html b/docs/developer/sending/replyto.html new file mode 100644 index 0000000..b60b626 --- /dev/null +++ b/docs/developer/sending/replyto.html @@ -0,0 +1,2515 @@ + + + + + + + Including a Reply Subject ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                          +
                                                                                          + + + + + + + + +
                                                                                          + +
                                                                                          + +
                                                                                          + + + + + + + + +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          + +
                                                                                          + +

                                                                                          Including a Reply Subject

                                                                                          +

                                                                                          The optional reply-to field when publishing a message can be used on the receiving side to respond. The reply-to subject is often called an inbox, and some libraries may provide a method for generating unique inbox subjects. For example to send a request to the subject time, with no content for the messages, you might:

                                                                                          +
                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                          +
                                                                                          nc, err := nats.Connect("demo.nats.io")
                                                                                          +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("time", 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("Reply: %s", msg.Data)
                                                                                          +
                                                                                          +// Close the connection
                                                                                          +nc.Close()
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                                                          +
                                                                                          +// 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("time", 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();
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          // set up a subscription to process the request
                                                                                          +nc.subscribe('time', (msg, reply) => {
                                                                                          +    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) => {
                                                                                          +    t.log('the time is', msg);
                                                                                          +    nc.close();
                                                                                          +});
                                                                                          +
                                                                                          +nc.publish('time', "", inbox);
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          nc = NATS()
                                                                                          +
                                                                                          +future = asyncio.Future()
                                                                                          +
                                                                                          +async def sub(msg):
                                                                                          +  nonlocal future
                                                                                          +  future.set_result(msg)
                                                                                          +
                                                                                          +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                                                          +await nc.subscribe("time", cb=sub)
                                                                                          +
                                                                                          +unique_reply_to = new_inbox()
                                                                                          +await nc.publish_request("time", unique_reply_to, b'')
                                                                                          +
                                                                                          +# Use the response
                                                                                          +msg = await asyncio.wait_for(future, 1)
                                                                                          +print("Reply:", msg)
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          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") do |msg, reply|
                                                                                          +      f.resume msg
                                                                                          +    end
                                                                                          +
                                                                                          +    nc.publish("time", 'example', NATS.create_inbox)
                                                                                          +
                                                                                          +    # Use the response
                                                                                          +    msg = Fiber.yield
                                                                                          +    puts "Reply: #{msg}"
                                                                                          +
                                                                                          +  end.resume
                                                                                          +end
                                                                                          +
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          +
                                                                                          // set up a subscription to process the request
                                                                                          +await nc.subscribe('time', (err, msg) => {
                                                                                          +    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) => {
                                                                                          +    t.log('the time is', msg.data);
                                                                                          +    // this example is running inside of a promise
                                                                                          +    nc.close();
                                                                                          +    resolve();
                                                                                          +}, {max: 1});
                                                                                          +
                                                                                          +nc.publish('time', "", inbox);
                                                                                          +
                                                                                          +
                                                                                          + +
                                                                                          + +
                                                                                          + +
                                                                                          +
                                                                                          +
                                                                                          + +

                                                                                          results matching ""

                                                                                          +
                                                                                            + +
                                                                                            +
                                                                                            + +

                                                                                            No results matching ""

                                                                                            + +
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + +
                                                                                            + + + + + + + + + + + + + + +
                                                                                            + + +
                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/sending/request_reply.html b/docs/developer/sending/request_reply.html new file mode 100644 index 0000000..f911ec5 --- /dev/null +++ b/docs/developer/sending/request_reply.html @@ -0,0 +1,2531 @@ + + + + + + + Request-Reply Semantics ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                            +
                                                                                            + + + + + + + + +
                                                                                            + +
                                                                                            + +
                                                                                            + + + + + + + + +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            + +
                                                                                            + +

                                                                                            Request-Reply

                                                                                            +

                                                                                            The pattern of sending a message and receiving a response is encapsulated in most client libraries into a request method. Under the covers this method will publish a message with a unique reply-to subject and wait for the response before returning.

                                                                                            +

                                                                                            In the older versions of some libraries a completely new reply-to subject is created each time. In newer versions, a subject hierarchy is used so that a single subscriber in the client library listens for a wildcard, and requests are sent with a unique child subject of a single subject.

                                                                                            +

                                                                                            The primary difference between the request method and publishing with a reply-to is that the library is only going to accept one response, and in most libraries the request will be treated as a synchronous action. The library may even provide a way to set the timeout.

                                                                                            +

                                                                                            For example, updating the previous publish example we may request time with a one second timeout:

                                                                                            +
                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                            +
                                                                                            nc, err := nats.Connect("demo.nats.io")
                                                                                            +if err != nil {
                                                                                            +	log.Fatal(err)
                                                                                            +}
                                                                                            +defer nc.Close()
                                                                                            +
                                                                                            +// Send the request
                                                                                            +msg, err := nc.Request("time", nil, time.Second)
                                                                                            +if err != nil {
                                                                                            +	log.Fatal(err)
                                                                                            +}
                                                                                            +
                                                                                            +// Use the response
                                                                                            +log.Printf("Reply: %s", msg.Data)
                                                                                            +
                                                                                            +// Close the connection
                                                                                            +nc.Close()
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                                                            +
                                                                                            +// Send the request
                                                                                            +Message msg = nc.request("time", null, Duration.ofSeconds(1));
                                                                                            +
                                                                                            +// Use the response
                                                                                            +System.out.println(new String(msg.getData(), StandardCharsets.UTF_8));
                                                                                            +
                                                                                            +// Close the connection
                                                                                            +nc.close();
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            nc.requestOne('time', (msg) => {
                                                                                            +    t.log('the time is', msg);
                                                                                            +    nc.close();
                                                                                            +});
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            nc = NATS()
                                                                                            +
                                                                                            +async def sub(msg):
                                                                                            +  await nc.publish(msg.reply, b'response')
                                                                                            +
                                                                                            +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                                                            +await nc.subscribe("time", cb=sub)
                                                                                            +
                                                                                            +# Send the request
                                                                                            +try:
                                                                                            +  msg = await nc.request("time", b'', timeout=1)
                                                                                            +  # Use the response
                                                                                            +  print("Reply:", msg)
                                                                                            +except asyncio.TimeoutError:
                                                                                            +  print("Timed out waiting for response")
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            require 'nats/client'
                                                                                            +require 'fiber'
                                                                                            +
                                                                                            +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                                                                            +  nc.subscribe("time") do |msg, reply|
                                                                                            +    nc.publish(reply, "response")
                                                                                            +  end
                                                                                            +
                                                                                            +  Fiber.new do
                                                                                            +    # Use the response
                                                                                            +    msg = nc.request("time", "")
                                                                                            +    puts "Reply: #{msg}"
                                                                                            +  end.resume
                                                                                            +end
                                                                                            +
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +
                                                                                            let msg = await nc.request('time', 1000);
                                                                                            +t.log('the time is', msg.data);
                                                                                            +nc.close();
                                                                                            +
                                                                                            +
                                                                                            + +
                                                                                            +

                                                                                            You can think of request-reply in the library as a subscribe, get one message, unsubscribe pattern. In Go this might look something like:

                                                                                            +
                                                                                            sub, err := nc.SubscribeSync(replyTo)
                                                                                            +if err != nil {
                                                                                            +    log.Fatal(err)
                                                                                            +}
                                                                                            +nc.Flush()
                                                                                            +
                                                                                            +// Send the request
                                                                                            +nc.PublishRequest(subject, replyTo, []byte(input))
                                                                                            +
                                                                                            +// Wait for a single response
                                                                                            +for {
                                                                                            +    msg, err := sub.NextMsg(1 * time.Second)
                                                                                            +    if err != nil {
                                                                                            +        log.Fatal(err)
                                                                                            +    }
                                                                                            +
                                                                                            +    response = string(msg.Data)
                                                                                            +    break
                                                                                            +}
                                                                                            +sub.Unsubscribe()
                                                                                            +
                                                                                            +

                                                                                            Scatter-Gather

                                                                                            +

                                                                                            You can expand the request-reply pattern into something often called scatter-gather. To receive multiple messages, with a timeout, you could do something like the following, where the loop getting messages is using time as the limitation, not the receipt of a single message:

                                                                                            +
                                                                                            sub, err := nc.SubscribeSync(replyTo)
                                                                                            +if err != nil {
                                                                                            +    log.Fatal(err)
                                                                                            +}
                                                                                            +nc.Flush()
                                                                                            +
                                                                                            +// Send the request
                                                                                            +nc.PublishRequest(subject, replyTo, []byte(input))
                                                                                            +
                                                                                            +// Wait for a single response
                                                                                            +max := 100 * time.Millisecond
                                                                                            +start := time.Now()
                                                                                            +for time.Now().Sub(start) < max {
                                                                                            +    msg, err := sub.NextMsg(1 * time.Second)
                                                                                            +    if err != nil {
                                                                                            +        break
                                                                                            +    }
                                                                                            +
                                                                                            +    responses = append(responses, string(msg.Data))
                                                                                            +}
                                                                                            +sub.Unsubscribe()
                                                                                            +
                                                                                            +

                                                                                            Or, you can loop on a counter and a timeout to try to get at least N responses:

                                                                                            +
                                                                                            sub, err := nc.SubscribeSync(replyTo)
                                                                                            +if err != nil {
                                                                                            +    log.Fatal(err)
                                                                                            +}
                                                                                            +nc.Flush()
                                                                                            +
                                                                                            +// Send the request
                                                                                            +nc.PublishRequest(subject, replyTo, []byte(input))
                                                                                            +
                                                                                            +// Wait for a single response
                                                                                            +max := 500 * time.Millisecond
                                                                                            +start := time.Now()
                                                                                            +for time.Now().Sub(start) < max {
                                                                                            +    msg, err := sub.NextMsg(1 * time.Second)
                                                                                            +    if err != nil {
                                                                                            +        break
                                                                                            +    }
                                                                                            +
                                                                                            +    responses = append(responses, string(msg.Data))
                                                                                            +
                                                                                            +    if len(responses) >= minResponses {
                                                                                            +        break
                                                                                            +    }
                                                                                            +}
                                                                                            +sub.Unsubscribe()
                                                                                            +
                                                                                            + + +
                                                                                            + +
                                                                                            +
                                                                                            +
                                                                                            + +

                                                                                            results matching ""

                                                                                            +
                                                                                              + +
                                                                                              +
                                                                                              + +

                                                                                              No results matching ""

                                                                                              + +
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + +
                                                                                              + + + + + + + + + + + + + + +
                                                                                              + + +
                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/sending/structure.html b/docs/developer/sending/structure.html new file mode 100644 index 0000000..d2b5b2b --- /dev/null +++ b/docs/developer/sending/structure.html @@ -0,0 +1,2464 @@ + + + + + + + Sending Structured Data ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                              +
                                                                                              + + + + + + + + +
                                                                                              + +
                                                                                              + +
                                                                                              + + + + + + + + +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              + +
                                                                                              + +

                                                                                              Sending Structured Data

                                                                                              +

                                                                                              Some client libraries provide helpers to send structured data while others depend on the application to perform any encoding and decoding and just take byte arrays for sending. The following example shows how to send JSON but this could easily be altered to send a protocol buffer, YAML or some other format. JSON is a text format so we also have to encode the string in most languages to bytes. We are using UTF-8, the JSON standard encoding.

                                                                                              +

                                                                                              Take a simple stock ticker that sends the symbol and price of each stock:

                                                                                              +
                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                              +
                                                                                              nc, err := nats.Connect("demo.nats.io")
                                                                                              +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("updates", &stock{Symbol: "GOOG", Price: 1200}); err != nil {
                                                                                              +	log.Fatal(err)
                                                                                              +}
                                                                                              +// Make sure the message goes through before we close
                                                                                              +ec.Flush()
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              class StockForJsonPub {
                                                                                              +    public String symbol;
                                                                                              +    public float price;
                                                                                              +}
                                                                                              +
                                                                                              +public class PublishJSON {
                                                                                              +    public static void main(String[] args) {
                                                                                              +        try {
                                                                                              +            Connection nc = Nats.connect("nats://demo.nats.io:4222");
                                                                                              +
                                                                                              +            // Create the data object
                                                                                              +            StockForJsonPub stk = new StockForJsonPub();
                                                                                              +            stk.symbol="GOOG";
                                                                                              +            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("updates", 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();
                                                                                              +        }
                                                                                              +    }
                                                                                              +}
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              let nc = NATS.connect({url: "nats://demo.nats.io:4222", json: true});
                                                                                              +nc.publish('updates', {ticker: 'GOOG', price: 1200});
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              nc = NATS()
                                                                                              +
                                                                                              +await nc.connect(servers=["nats://demo.nats.io:4222"])
                                                                                              +
                                                                                              +await nc.publish("updates", json.dumps({"symbol": "GOOG", "price": 1200 }).encode())
                                                                                              +
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              require 'nats/client'
                                                                                              +require 'json'
                                                                                              +
                                                                                              +NATS.start(servers:["nats://127.0.0.1:4222"]) do |nc|
                                                                                              +  nc.publish("updates", {"symbol": "GOOG", "price": 1200}.to_json)
                                                                                              +end
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              +
                                                                                              let nc = await connect({
                                                                                              +    url: "nats://demo.nats.io:4222",
                                                                                              +    payload: Payload.JSON
                                                                                              +});
                                                                                              +
                                                                                              +nc.publish('updates', {ticker: 'GOOG', price: 1200});
                                                                                              +
                                                                                              +
                                                                                              + +
                                                                                              + +
                                                                                              + +
                                                                                              +
                                                                                              +
                                                                                              + +

                                                                                              results matching ""

                                                                                              +
                                                                                                + +
                                                                                                +
                                                                                                + +

                                                                                                No results matching ""

                                                                                                + +
                                                                                                +
                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                + +
                                                                                                + + + + + + + + + + + + + + +
                                                                                                + + +
                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/streaming/acks.html b/docs/developer/streaming/acks.html new file mode 100644 index 0000000..d896fdd --- /dev/null +++ b/docs/developer/streaming/acks.html @@ -0,0 +1,2347 @@ + + + + + + + Acknowledgements ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                +
                                                                                                + + + + + + + + +
                                                                                                + +
                                                                                                + +
                                                                                                + + + + + + + + +
                                                                                                +
                                                                                                + +
                                                                                                +
                                                                                                + +
                                                                                                + +

                                                                                                Acknowledgements

                                                                                                +

                                                                                                Subscribers can use auto-ack or manual-ack. Auto-ack is the default for most clients and is sent by the library when the message callback returns. Manual ack provides more control. The subscription options provide flags to:

                                                                                                +
                                                                                                  +
                                                                                                • Set manual acks to true
                                                                                                • +
                                                                                                • Set the ack wait used by the server for messages to this subscription
                                                                                                • +
                                                                                                +

                                                                                                The ack wait is the time the server will wait before resending a message.

                                                                                                +
                                                                                                sub, err := sc.Subscribe("foo",
                                                                                                +  func(m *stan.Msg) {
                                                                                                +    m.Ack()
                                                                                                +  }, stan.SetManualAckMode(), stan.AckWait(aw))
                                                                                                +
                                                                                                +

                                                                                                Max In Flight

                                                                                                +

                                                                                                Subscribers can set max in flight to rate limit incoming messages. The server will send at most “max in flight” messages before receiving an acknowledgement. Setting max in flight to 1 insures every message is processed in order.

                                                                                                +
                                                                                                sc.Subscribe("foo", func(m *stan.Msg) {...},
                                                                                                +   stan.SetManualAckMode(),
                                                                                                +   stan.MaxInflight(25))
                                                                                                +
                                                                                                + + +
                                                                                                + +
                                                                                                +
                                                                                                +
                                                                                                + +

                                                                                                results matching ""

                                                                                                +
                                                                                                  + +
                                                                                                  +
                                                                                                  + +

                                                                                                  No results matching ""

                                                                                                  + +
                                                                                                  +
                                                                                                  +
                                                                                                  + +
                                                                                                  +
                                                                                                  + +
                                                                                                  + + + + + + + + + + + + + + +
                                                                                                  + + +
                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/streaming/connecting.html b/docs/developer/streaming/connecting.html new file mode 100644 index 0000000..5ecbae4 --- /dev/null +++ b/docs/developer/streaming/connecting.html @@ -0,0 +1,2337 @@ + + + + + + + Connecting to NATS Streaming ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                  +
                                                                                                  + + + + + + + + +
                                                                                                  + +
                                                                                                  + +
                                                                                                  + + + + + + + + +
                                                                                                  +
                                                                                                  + +
                                                                                                  +
                                                                                                  + +
                                                                                                  + +

                                                                                                  Connecting to NATS Streaming

                                                                                                  +

                                                                                                  NATS Streaming is a service on top of NATS. To connect to the service you first connect to NATS and then use the client library to communicate with the server over your NATS connection. Most of the libraries provide a convenience mechanism for connecting in a single step. These convenience methods will take some NATS options, like the server, and perform the NATS connection first, then then run the protocol to connect to the streaming server.

                                                                                                  +

                                                                                                  Connecting to a streaming server requires a cluster id, defined by the server configuration, and a client ID defined by the client.

                                                                                                  +
                                                                                                  sc, err := stan.Connect(clusterID, clientID, stan.NatsURL(“nats://localhost:4222))
                                                                                                  +
                                                                                                  +

                                                                                                  Sometimes you may want to provide NATS settings that aren't available in the streaming libraries connect method. Or, you may want to reuse a NATS connection instead of creating a new one. In this case the libraries generally provide a way to connect to streaming with an existing NATS connection:

                                                                                                  +
                                                                                                  sc, err := stan.Connect(clusterID, clientID, stan.NatsConn(nc))
                                                                                                  +
                                                                                                  + + +
                                                                                                  + +
                                                                                                  +
                                                                                                  +
                                                                                                  + +

                                                                                                  results matching ""

                                                                                                  +
                                                                                                    + +
                                                                                                    +
                                                                                                    + +

                                                                                                    No results matching ""

                                                                                                    + +
                                                                                                    +
                                                                                                    +
                                                                                                    + +
                                                                                                    +
                                                                                                    + +
                                                                                                    + + + + + + + + + + + + + + +
                                                                                                    + + +
                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/streaming/durables.html b/docs/developer/streaming/durables.html new file mode 100644 index 0000000..8227dfb --- /dev/null +++ b/docs/developer/streaming/durables.html @@ -0,0 +1,2333 @@ + + + + + + + Durable Subscriptions ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                    +
                                                                                                    + + + + + + + + +
                                                                                                    + +
                                                                                                    + +
                                                                                                    + + + + + + + + +
                                                                                                    +
                                                                                                    + +
                                                                                                    +
                                                                                                    + +
                                                                                                    + +

                                                                                                    Durable Subscriptions

                                                                                                    +

                                                                                                    Regular subscriptions remember their position while the client is connected. If the client disconnects the position is lost. Durable subscriptions remember their position even if the client is disconnected. Durable subscriptions identify themselves with a name. Connect and disconnect won’t affect the durable subscriptions position in the channel. Unsubscribe will clear the durable subscription.

                                                                                                    +
                                                                                                    sc.Subscribe("foo", func(m *stan.Msg) {...}, stan.DurableName("my-durable"))
                                                                                                    +
                                                                                                    + + +
                                                                                                    + +
                                                                                                    +
                                                                                                    +
                                                                                                    + +

                                                                                                    results matching ""

                                                                                                    +
                                                                                                      + +
                                                                                                      +
                                                                                                      + +

                                                                                                      No results matching ""

                                                                                                      + +
                                                                                                      +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + +
                                                                                                      + + + + + + + + + + + + + + +
                                                                                                      + + +
                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/streaming/index.html b/docs/developer/streaming/index.html new file mode 100644 index 0000000..2ba2e0c --- /dev/null +++ b/docs/developer/streaming/index.html @@ -0,0 +1,2376 @@ + + + + + + + Introduction ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                      +
                                                                                                      + + + + + + + + +
                                                                                                      + +
                                                                                                      + +
                                                                                                      + + + + + + + + +
                                                                                                      +
                                                                                                      + +
                                                                                                      +
                                                                                                      + +
                                                                                                      + +

                                                                                                      NATS Streaming

                                                                                                      +

                                                                                                      Where NATS provides at most once quality of service, streaming adds at least once. Streaming is implemented as a request-reply service on top of NATS. Streaming messages are encoded as protocol buffers, the streaming clients use NATS to talk to the streaming server. The streaming server organizes messages in channels and stores them in files and databases. ACKs are used to insure delivery in both directions.

                                                                                                      +
                                                                                                      +

                                                                                                      Sometimes the maintainers will refer to NATS as "nats core" and streaming as "stan" or "streaming."

                                                                                                      +
                                                                                                      +

                                                                                                      Messages to the streaming service are opaque byte arrays, just as they are with NATS. However, the streaming server protocol uses protocol buffers to wrap these byte arrays. So if you listen to the NATS traffic the messages will appear as protocol buffers, while the actual data sent and received will simply be byte arrays.

                                                                                                      +

                                                                                                      NATS streaming uses the concept of a channel to represent an ordered collection of messages. Clients send to and receive from channels instead of subjects. The subjects used by the streaming libraries and server are managed internally. Channels do not currently support wildcard. Channels aren’t raw subjects. Streaming isn’t raw NATS. The streaming libraries hide some of the differences.

                                                                                                      +

                                                                                                      Think of channels as a ring buffer. Messages are added until the configured limit is reached. Old messages are removed to make room for new ones. Old messages can expire, based on configuration. Subscriptions don’t affect channel content. Subscriptions are like a cursor on the ring buffer.

                                                                                                      +

                                                                                                      ring buffer

                                                                                                      +

                                                                                                      Positions in the channel are specified in multiple ways:

                                                                                                      +
                                                                                                        +
                                                                                                      • Sequence number - counting from 1
                                                                                                      • +
                                                                                                      • Time
                                                                                                      • +
                                                                                                      • Time delta (converted to time on client)
                                                                                                      • +
                                                                                                      +

                                                                                                      New subscriptions can also specify last received to indicate they only want new messages. Sequence numbers are persistent, when message #1 goes away the oldest message is message #2. Trying to go to a position before the oldest message will be moved to the oldest message.

                                                                                                      +

                                                                                                      starting positions

                                                                                                      +

                                                                                                      Subscription Types

                                                                                                      +

                                                                                                      NATS Streaming supports several types of subscriptions:

                                                                                                      +
                                                                                                        +
                                                                                                      • Regular
                                                                                                      • +
                                                                                                      • Durable
                                                                                                      • +
                                                                                                      • Queue
                                                                                                      • +
                                                                                                      • Durable/Queue
                                                                                                      • +
                                                                                                      +

                                                                                                      Regular subscriptions pick the location of their channel position on creation and it is stored while the subscriber is active. Durable subscriptions store their position in the streaming server. Queue subscriptions share a channel position. Durable/Queue subscriptions share a channel position stored in the server. All subscriptions can be configured with a starting position, but only new durable subscriptions and new regular subscriptions respect the request.

                                                                                                      +

                                                                                                      All subscriptions define their position on creation. Regular subscriptions lose their position if the application crashes, the app disconnects or they unsubscribe. Durable subscriptions maintain their position through disconnect, subscriber close, but not through unsubscribe. The position on reconnect comes from the server not the options in both cases. Queue subscriptions share a position. Regular queue subscriptions lose their position on the last disconnect/unsubscribe. Durable queue subscriptions maintain their position through disconnect, but not through the last unsubscribe. Positions provided in options are ignored after the position is set.

                                                                                                      +

                                                                                                      Acknowledgements

                                                                                                      +

                                                                                                      In order to implement at least once delivery NATS streaming uses ACK messages for publishers and subscribers. Each message sent from the streaming server to the client must be acknowledged or it will be re-delivered. Developers must switch their mind set. The same message can arrive more than once. Messages should be idempotent. The client libraries can help with ACKs. Subscriptions can use manual or automatic ACKs. Manual ACKs are safer, since the program controls when they happen. An ACK wait setting is used to define the timeout before an ACK is considered missing.

                                                                                                      +
                                                                                                      +

                                                                                                      Ack wait = 10s means that the server won’t redeliver for at least 10s

                                                                                                      +
                                                                                                      +

                                                                                                      Using ACKs for each message sent can be a performance hit - round trip per message. NATS streaming allows subscriptions to set a max in flight value. Max in flight determines how many unacknowledged messages can be sent to the client. Ack Wait is used to decide when the ACK for a message has failed and it needs to be redelivered. New and redelivered messages are sent upon availability, in order.

                                                                                                      +

                                                                                                      Messages are sent in order, when they are available:

                                                                                                      +
                                                                                                        +
                                                                                                      • Max inflight = 2
                                                                                                      • +
                                                                                                      • Send msg 1 and msg 2
                                                                                                      • +
                                                                                                      • ACK 2
                                                                                                      • +
                                                                                                      • Message 3 arrives at the server
                                                                                                      • +
                                                                                                      • Send message 3 (since it is available)
                                                                                                      • +
                                                                                                      • When Ack wait expires, msg 1 is available
                                                                                                      • +
                                                                                                      • Send msg 1 (1 and 3 are in flight)
                                                                                                      • +
                                                                                                      +

                                                                                                      The streaming server sends available messages in order, but 1 isn’t available until its Ack wait expires. If max in flight = 1 then only 1 message is on the wire at a time, it will be re-sent until it is acknowledged. Re-delivered messages will not come out of order in this situation.

                                                                                                      +

                                                                                                      Setting max in flight to a number greater than 1 requires some thought and foresight to deal with redelivery scenarios.

                                                                                                      +

                                                                                                      Max in flight is a per-subscription setting. In the case of queue subscribers, each client can set the value. Normally, each client will use the same value but this is not a requirement.

                                                                                                      +

                                                                                                      NATS streaming uses acknowledgements on the sending side as well as the subscribing side. The streaming server acknowledges messages it receives and has persisted. A maximum in flight setting is used for publishers. No more than max in flight can be on their way to the server at one time. The library may provide various mechanisms to handle publisher ACKs. The application must manage redelivery to the server.

                                                                                                      + + +
                                                                                                      + +
                                                                                                      +
                                                                                                      +
                                                                                                      + +

                                                                                                      results matching ""

                                                                                                      +
                                                                                                        + +
                                                                                                        +
                                                                                                        + +

                                                                                                        No results matching ""

                                                                                                        + +
                                                                                                        +
                                                                                                        +
                                                                                                        + +
                                                                                                        +
                                                                                                        + +
                                                                                                        + + + + + + + + + + + + + + +
                                                                                                        + + +
                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/streaming/publishing.html b/docs/developer/streaming/publishing.html new file mode 100644 index 0000000..004fda1 --- /dev/null +++ b/docs/developer/streaming/publishing.html @@ -0,0 +1,2338 @@ + + + + + + + Publishing to a Channel ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                        +
                                                                                                        + + + + + + + + +
                                                                                                        + +
                                                                                                        + +
                                                                                                        + + + + + + + + +
                                                                                                        +
                                                                                                        + +
                                                                                                        +
                                                                                                        + +
                                                                                                        + +

                                                                                                        Publishing to a Channel

                                                                                                        +

                                                                                                        The streaming client library can provide a method for publishing synchronously. .These publish methods block until the ACK is returned by the server. An error or exception is used to indicate a timeout or other error.

                                                                                                        +
                                                                                                        err := sc.Publish("foo", []byte("Hello World"))
                                                                                                        +
                                                                                                        +

                                                                                                        Streaming libraries can also provide a way to publish asynchronously. An ACK callback of some kind is required. The library will publish the message and notify the callback on ACK or timeout. The global id associated with the message being sent is returned from publish so that the application can identify it on callback.

                                                                                                        +
                                                                                                        ackHandler := func(ackedNuid string, err error){ ... }
                                                                                                        +
                                                                                                        +nuid, err := sc.PublishAsync("foo", []byte("Hello World"), ackHandler)
                                                                                                        +
                                                                                                        + + +
                                                                                                        + +
                                                                                                        +
                                                                                                        +
                                                                                                        + +

                                                                                                        results matching ""

                                                                                                        +
                                                                                                          + +
                                                                                                          +
                                                                                                          + +

                                                                                                          No results matching ""

                                                                                                          + +
                                                                                                          +
                                                                                                          +
                                                                                                          + +
                                                                                                          +
                                                                                                          + +
                                                                                                          + + + + + + + + + + + + + + +
                                                                                                          + + +
                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/streaming/queues.html b/docs/developer/streaming/queues.html new file mode 100644 index 0000000..98bc002 --- /dev/null +++ b/docs/developer/streaming/queues.html @@ -0,0 +1,2337 @@ + + + + + + + Queue Subscriptions ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                          +
                                                                                                          + + + + + + + + +
                                                                                                          + +
                                                                                                          + +
                                                                                                          + + + + + + + + +
                                                                                                          +
                                                                                                          + +
                                                                                                          +
                                                                                                          + +
                                                                                                          + +

                                                                                                          Queue Subscriptions

                                                                                                          +

                                                                                                          Queue subscriptions are created like other subscriptions with the addition of a queue name. All subscriptions, across clients, share the queue based on this unique name. Other subscriptions can receive messages independently of the queue groups. Unsubscribe removes a client from a group, the last unsubscribe kills the group. Max in flight is per subscription.

                                                                                                          +
                                                                                                          qsub1, _ := sc.QueueSubscribe(channelID,
                                                                                                          +    queueName, func(m *stan.Msg) {...})
                                                                                                          +
                                                                                                          +qsub2, _ := sc.QueueSubscribe(channelID,
                                                                                                          +    queueName, func(m *stan.Msg) {...})
                                                                                                          +
                                                                                                          + + +
                                                                                                          + +
                                                                                                          +
                                                                                                          +
                                                                                                          + +

                                                                                                          results matching ""

                                                                                                          +
                                                                                                            + +
                                                                                                            +
                                                                                                            + +

                                                                                                            No results matching ""

                                                                                                            + +
                                                                                                            +
                                                                                                            +
                                                                                                            + +
                                                                                                            +
                                                                                                            + +
                                                                                                            + + + + + + + + + + + + + + +
                                                                                                            + + +
                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/streaming/receiving.html b/docs/developer/streaming/receiving.html new file mode 100644 index 0000000..67a792b --- /dev/null +++ b/docs/developer/streaming/receiving.html @@ -0,0 +1,2369 @@ + + + + + + + Receiving Messages from a Channel ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                            +
                                                                                                            + + + + + + + + +
                                                                                                            + +
                                                                                                            + +
                                                                                                            + + + + + + + + +
                                                                                                            +
                                                                                                            + +
                                                                                                            +
                                                                                                            + +
                                                                                                            + +

                                                                                                            Receiving Messages from a Channel

                                                                                                            +

                                                                                                            Clients subscribe to channels by name. Wildcards are not supported. Receiving messages is similar to core NATS. Messages in streaming use protocol buffers and will have a bit more structure than NATS opaque messages. Client messages are still presented and accepted as raw/opaque binary data. The use of protocol buffers is transparent.

                                                                                                            +

                                                                                                            Subscriptions come in several forms:

                                                                                                            +
                                                                                                              +
                                                                                                            • Regular
                                                                                                            • +
                                                                                                            • Durable
                                                                                                            • +
                                                                                                            • Queue
                                                                                                            • +
                                                                                                            • Queue/Durable
                                                                                                            • +
                                                                                                            +

                                                                                                            Subscriptions set their starting position on creation using position or time. For example, in Go you can start at:

                                                                                                            +
                                                                                                              +
                                                                                                            • The last message received
                                                                                                            • +
                                                                                                            +
                                                                                                            sub, err := sc.Subscribe("foo",
                                                                                                            +  func(m *stan.Msg) {...},
                                                                                                            +  stan.StartWithLastReceived())
                                                                                                            +
                                                                                                            +
                                                                                                              +
                                                                                                            • The beginning of the channel
                                                                                                            • +
                                                                                                            +
                                                                                                            sub, err := sc.Subscribe("foo",
                                                                                                            +  func(m *stan.Msg) {...},
                                                                                                            +  stan.DeliverAllAvailable())
                                                                                                            +
                                                                                                            +
                                                                                                              +
                                                                                                            • A specific message, indexing starts at 1
                                                                                                            • +
                                                                                                            +
                                                                                                            sub, err := sc.Subscribe("foo",
                                                                                                            +  func(m *stan.Msg) {...},
                                                                                                            +  stan.StartAtSequence(22))
                                                                                                            +
                                                                                                            +
                                                                                                              +
                                                                                                            • A specific time the message arrived in the channel
                                                                                                            • +
                                                                                                            +
                                                                                                            var startTime time.Time
                                                                                                            +...
                                                                                                            +sub, err := sc.Subscribe("foo",
                                                                                                            +  func(m *stan.Msg) {...},
                                                                                                            +  stan.StartAtTime(startTime))
                                                                                                            +
                                                                                                            + + +
                                                                                                            + +
                                                                                                            +
                                                                                                            +
                                                                                                            + +

                                                                                                            results matching ""

                                                                                                            +
                                                                                                              + +
                                                                                                              +
                                                                                                              + +

                                                                                                              No results matching ""

                                                                                                              + +
                                                                                                              +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + +
                                                                                                              + + + + + + + + + + + + + + +
                                                                                                              + + +
                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/tutorials/custom_dialer.html b/docs/developer/tutorials/custom_dialer.html new file mode 100644 index 0000000..6e5414a --- /dev/null +++ b/docs/developer/tutorials/custom_dialer.html @@ -0,0 +1,2455 @@ + + + + + + + Advanced Connect and Custom Dialer in Go ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                              +
                                                                                                              + + + + + + + + +
                                                                                                              + +
                                                                                                              + +
                                                                                                              + + + + + + + + +
                                                                                                              +
                                                                                                              + +
                                                                                                              +
                                                                                                              + +
                                                                                                              + +

                                                                                                              Advanced Connect and Custom Dialer in Go

                                                                                                              +

                                                                                                              The Go NATS client features a CustomDialer option which allows you to customize +the connection logic against the NATS server without having to modify the internals +of the client. For example, let's say that you want to make the client use the context +package to use DialContext and be able to cancel connecting to NATS altogether with a deadline, +you could then do define a Dialer implementation as follows:

                                                                                                              +
                                                                                                              package main
                                                                                                              +
                                                                                                              +import (
                                                                                                              +    "context"
                                                                                                              +    "log"
                                                                                                              +    "net"
                                                                                                              +    "time"
                                                                                                              +
                                                                                                              +    "github.com/nats-io/go-nats"
                                                                                                              +)
                                                                                                              +
                                                                                                              +type customDialer struct {
                                                                                                              +    ctx             context.Context
                                                                                                              +    nc              *nats.Conn
                                                                                                              +    connectTimeout  time.Duration
                                                                                                              +    connectTimeWait time.Duration
                                                                                                              +}
                                                                                                              +
                                                                                                              +func (cd *customDialer) Dial(network, address string) (net.Conn, error) {
                                                                                                              +    ctx, cancel := context.WithTimeout(cd.ctx, cd.connectTimeout)
                                                                                                              +    defer cancel()
                                                                                                              +
                                                                                                              +    for {
                                                                                                              +        log.Println("Attempting to connect to", address)
                                                                                                              +        if ctx.Err() != nil {
                                                                                                              +            return nil, ctx.Err()
                                                                                                              +        }
                                                                                                              +
                                                                                                              +        select {
                                                                                                              +        case <-cd.ctx.Done():
                                                                                                              +            return nil, cd.ctx.Err()
                                                                                                              +        default:
                                                                                                              +            d := &net.Dialer{}
                                                                                                              +            if conn, err := d.DialContext(ctx, network, address); err == nil {
                                                                                                              +                log.Println("Connected to NATS successfully")
                                                                                                              +                return conn, nil
                                                                                                              +            } else {
                                                                                                              +                time.Sleep(cd.connectTimeWait)
                                                                                                              +            }
                                                                                                              +        }
                                                                                                              +    }
                                                                                                              +}
                                                                                                              +
                                                                                                              +

                                                                                                              With the dialer implementation above, the NATS client will retry a number of times to connect +to the NATS server until the context is no longer valid:

                                                                                                              +
                                                                                                              func main() {
                                                                                                              +    // Parent context cancels connecting/reconnecting altogether.
                                                                                                              +    ctx, cancel := context.WithCancel(context.Background())
                                                                                                              +    defer cancel()
                                                                                                              +
                                                                                                              +    var err error
                                                                                                              +    var nc *nats.Conn
                                                                                                              +    cd := &customDialer{
                                                                                                              +        ctx:             ctx,
                                                                                                              +        connectTimeout:  10 * time.Second,
                                                                                                              +        connectTimeWait: 1 * time.Second,
                                                                                                              +    }
                                                                                                              +    opts := []nats.Option{
                                                                                                              +        nats.SetCustomDialer(cd),
                                                                                                              +        nats.ReconnectWait(2 * time.Second),
                                                                                                              +        nats.ReconnectHandler(func(c *nats.Conn) {
                                                                                                              +            log.Println("Reconnected to", c.ConnectedUrl())
                                                                                                              +        }),
                                                                                                              +        nats.DisconnectHandler(func(c *nats.Conn) {
                                                                                                              +            log.Println("Disconnected from NATS")
                                                                                                              +        }),
                                                                                                              +        nats.ClosedHandler(func(c *nats.Conn) {
                                                                                                              +            log.Println("NATS connection is closed.")
                                                                                                              +        }),
                                                                                                              +        nats.NoReconnect(),
                                                                                                              +    }
                                                                                                              +    go func() {
                                                                                                              +        nc, err = nats.Connect("127.0.0.1:4222", opts...)
                                                                                                              +    }()
                                                                                                              +
                                                                                                              +WaitForEstablishedConnection:
                                                                                                              +    for {
                                                                                                              +        if err != nil {
                                                                                                              +            log.Fatal(err)
                                                                                                              +        }
                                                                                                              +
                                                                                                              +        // Wait for context to be canceled either by timeout
                                                                                                              +        // or because of establishing a connection...
                                                                                                              +        select {
                                                                                                              +        case <-ctx.Done():
                                                                                                              +            break WaitForEstablishedConnection
                                                                                                              +        default:
                                                                                                              +        }
                                                                                                              +
                                                                                                              +        if nc == nil || !nc.IsConnected() {
                                                                                                              +            log.Println("Connection not ready")
                                                                                                              +            time.Sleep(200 * time.Millisecond)
                                                                                                              +            continue
                                                                                                              +        }
                                                                                                              +        break WaitForEstablishedConnection
                                                                                                              +    }
                                                                                                              +    if ctx.Err() != nil {
                                                                                                              +        log.Fatal(ctx.Err())
                                                                                                              +    }
                                                                                                              +
                                                                                                              +    for {
                                                                                                              +        if nc.IsClosed() {
                                                                                                              +            break
                                                                                                              +        }
                                                                                                              +        if err := nc.Publish("hello", []byte("world")); err != nil {
                                                                                                              +            log.Println(err)
                                                                                                              +            time.Sleep(1 * time.Second)
                                                                                                              +            continue
                                                                                                              +        }
                                                                                                              +        log.Println("Published message")
                                                                                                              +        time.Sleep(1 * time.Second)
                                                                                                              +    }
                                                                                                              +
                                                                                                              +    // Disconnect and flush pending messages
                                                                                                              +    if err := nc.Drain(); err != nil {
                                                                                                              +        log.Println(err)
                                                                                                              +    }
                                                                                                              +    log.Println("Disconnected")
                                                                                                              +}
                                                                                                              +
                                                                                                              + + +
                                                                                                              + +
                                                                                                              +
                                                                                                              +
                                                                                                              + +

                                                                                                              results matching ""

                                                                                                              +
                                                                                                                + +
                                                                                                                +
                                                                                                                + +

                                                                                                                No results matching ""

                                                                                                                + +
                                                                                                                +
                                                                                                                +
                                                                                                                + +
                                                                                                                +
                                                                                                                + +
                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                + + +
                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/tutorials/intro.html b/docs/developer/tutorials/intro.html new file mode 100644 index 0000000..64054b2 --- /dev/null +++ b/docs/developer/tutorials/intro.html @@ -0,0 +1,2330 @@ + + + + + + + Tutorials ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                +
                                                                                                                + + + + + + + + +
                                                                                                                + +
                                                                                                                + +
                                                                                                                + + + + + + + + +
                                                                                                                +
                                                                                                                + +
                                                                                                                +
                                                                                                                + +
                                                                                                                + +

                                                                                                                Tutorials

                                                                                                                + + +
                                                                                                                + +
                                                                                                                +
                                                                                                                +
                                                                                                                + +

                                                                                                                results matching ""

                                                                                                                +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  No results matching ""

                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                  + + +
                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/tutorials/pubsub.html b/docs/developer/tutorials/pubsub.html new file mode 100644 index 0000000..0595111 --- /dev/null +++ b/docs/developer/tutorials/pubsub.html @@ -0,0 +1,2440 @@ + + + + + + + Explore NATS Pub/Sub ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                  +
                                                                                                                  + + + + + + + + +
                                                                                                                  + +
                                                                                                                  + +
                                                                                                                  + + + + + + + + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  + +
                                                                                                                  + +

                                                                                                                  Explore NATS Pub/Sub

                                                                                                                  +

                                                                                                                  NATS is a publish subscribe messaging system. Subscribers listening on a subject name receive messages on that subject. If the subscriber is not actively listening on the subject, the message is not received. Subscribers can use the wildcard subjects * to match a single token to match the tail of a subject.

                                                                                                                  +
                                                                                                                  +digraph nats_pub_sub { + graph [splines=ortho, nodesep=1]; + + sub1 [shape="box", label="SUB\ncom.msg.one"]; + pub1 [shape="box", label="PUB\ncom.msg.one"]; + non_active [shape="box", label="Non-Active\nSubscriber"]; + + { + rank=same + pub1 sub1 non_active + } + + gnatsd [shape="box", label="NATS", width=8]; + + sub2 [shape="box", label="SUB\ncom.msg.one"]; + sub3 [shape="box", label="SUB\ncom.msg.two"]; + sub4 [shape="box", label="SUB\ncom.msg.*"]; + + { + rank=same + sub2 sub3 sub4 + } + + pub1 -> gnatsd [penwidth=2]; + gnatsd -> sub1 [penwidth=2]; + gnatsd -> non_active [style=dashed color=red arrowhead="none"]; + + gnatsd -> sub2 [penwidth=2]; + gnatsd -> sub3 [style=dashed color=red arrowhead="none"]; + gnatsd -> sub4 [penwidth=2]; +} +
                                                                                                                  + +

                                                                                                                  Prerequisites

                                                                                                                  +

                                                                                                                  Go and the NATS server should be installed.

                                                                                                                  +

                                                                                                                  1. Start the NATS server

                                                                                                                  +
                                                                                                                  % nats-server
                                                                                                                  +
                                                                                                                  +

                                                                                                                  When the server starts successfully, you will see the following messages:

                                                                                                                  +
                                                                                                                  [1] 2015/08/12 15:18:22.301550 [INF] Starting gnatsd version 0.6.4
                                                                                                                  +[1] 2015/08/12 15:18:22.301762 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                  +[1] 2015/08/12 15:18:22.301769 [INF] gnatsd is ready
                                                                                                                  +
                                                                                                                  +

                                                                                                                  The NATS server listens for client connections on TCP Port 4222.

                                                                                                                  +

                                                                                                                  2. Start a shell or command prompt session

                                                                                                                  +

                                                                                                                  You will use this session to run an example NATS client subscriber program.

                                                                                                                  +

                                                                                                                  3. CD to the Go client examples directory

                                                                                                                  +
                                                                                                                  % cd $GOPATH/src/github.com/nats-io/nats/examples
                                                                                                                  +
                                                                                                                  +

                                                                                                                  4. Run the client subscriber program

                                                                                                                  +
                                                                                                                  % go run nats-sub.go <subject>
                                                                                                                  +
                                                                                                                  +

                                                                                                                  Where <subject> is a subject to listen on. A valid subject is a string that is unique in the system.

                                                                                                                  +

                                                                                                                  For example:

                                                                                                                  +
                                                                                                                  % go run nats-sub.go msg.test
                                                                                                                  +
                                                                                                                  +

                                                                                                                  You should see the message: Listening on [msg.test]

                                                                                                                  +

                                                                                                                  5. Start another shell or command prompt session

                                                                                                                  +

                                                                                                                  You will use this session to run a NATS publisher client.

                                                                                                                  +

                                                                                                                  6. CD to the examples directory

                                                                                                                  +
                                                                                                                  % cd $GOPATH/src/github.com/nats-io/nats/examples
                                                                                                                  +
                                                                                                                  +

                                                                                                                  7. Publish a NATS message

                                                                                                                  +
                                                                                                                  % go run nats-pub.go <subject> <message>
                                                                                                                  +
                                                                                                                  +

                                                                                                                  Where <subject> is the subject name and <message> is the text to publish.

                                                                                                                  +

                                                                                                                  For example:

                                                                                                                  +
                                                                                                                  % go run nats-pub.go msg.test hello
                                                                                                                  +
                                                                                                                  +

                                                                                                                  or

                                                                                                                  +
                                                                                                                  % go run nats-pub.go msg.test "NATS MESSAGE"
                                                                                                                  +
                                                                                                                  +

                                                                                                                  8. Verify message publication and receipt

                                                                                                                  +

                                                                                                                  You should see that the publisher sends the message: Published [msg.test] : 'NATS MESSAGE'

                                                                                                                  +

                                                                                                                  And that the subscriber receives the message: [#1] Received on [msg.test]: 'NATS MESSAGE'

                                                                                                                  +

                                                                                                                  Note that if the receiver does not get the message, check that you are using the same subject name for the publisher and the subscriber.

                                                                                                                  +

                                                                                                                  9. Publish another message

                                                                                                                  +
                                                                                                                  % go run nats-pub.go msg.test "NATS MESSAGE 2"
                                                                                                                  +
                                                                                                                  +

                                                                                                                  You should see that the subscriber receive message 2. Note that the message count is incremented each time your subscribing client receives a message on that subject:

                                                                                                                  +

                                                                                                                  10. Start another shell or command prompt session

                                                                                                                  +

                                                                                                                  You will use this session to run a second NATS subscriber.

                                                                                                                  +

                                                                                                                  11. CD to the examples directory

                                                                                                                  +
                                                                                                                  % cd $GOPATH/src/github.com/nats-io/nats/examples
                                                                                                                  +
                                                                                                                  +

                                                                                                                  12. Subscribe to the message

                                                                                                                  +
                                                                                                                  % go run nats-sub.go msg.test
                                                                                                                  +
                                                                                                                  +

                                                                                                                  13. Publish another message using the publisher client

                                                                                                                  +
                                                                                                                  % go run nats-pub.go msg.test "NATS MESSAGE 3"
                                                                                                                  +
                                                                                                                  +

                                                                                                                  Verify that both subscribing clients receive the message.

                                                                                                                  +

                                                                                                                  14. Start another shell or command prompt session

                                                                                                                  +

                                                                                                                  You will use this session to run a third NATS subscriber.

                                                                                                                  +

                                                                                                                  15. CD to the examples directory

                                                                                                                  +
                                                                                                                  % cd $GOPATH/src/github.com/nats-io/nats/examples
                                                                                                                  +
                                                                                                                  +

                                                                                                                  16. Subscribe to a different message

                                                                                                                  +
                                                                                                                  % go run nats-sub.go msg.test.new
                                                                                                                  +
                                                                                                                  +

                                                                                                                  All the but last subscriber receives the message. Why? Because that subscriber is not listening on the message subject used by the publisher.

                                                                                                                  +

                                                                                                                  17. Update the last subscriber to use a wildcard

                                                                                                                  +

                                                                                                                  NATS supports the use of wildcard characters for message subscribers. (You cannot publish a message using a wildcard subject.)

                                                                                                                  +

                                                                                                                  Change the last subscriber the listen on msg.* and run it:

                                                                                                                  +
                                                                                                                  % go run nats-sub.go msg.*
                                                                                                                  +
                                                                                                                  +

                                                                                                                  18. Publish another message

                                                                                                                  +

                                                                                                                  This time, all three subscribing clients should receive the message.

                                                                                                                  + + +
                                                                                                                  + +
                                                                                                                  +
                                                                                                                  +
                                                                                                                  + +

                                                                                                                  results matching ""

                                                                                                                  +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + +

                                                                                                                    No results matching ""

                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                    + + +
                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/tutorials/queues.html b/docs/developer/tutorials/queues.html new file mode 100644 index 0000000..e00e712 --- /dev/null +++ b/docs/developer/tutorials/queues.html @@ -0,0 +1,2369 @@ + + + + + + + Explore NATS Queueing ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                    +
                                                                                                                    + + + + + + + + +
                                                                                                                    + +
                                                                                                                    + +
                                                                                                                    + + + + + + + + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    + +
                                                                                                                    + +

                                                                                                                    Explore NATS Queueing

                                                                                                                    +

                                                                                                                    NATS supports a form of load balancing using queue groups. Subscribers register a queue group name. A single subscriber in the group is randomly selected to receive the message.

                                                                                                                    +

                                                                                                                    Prerequisites

                                                                                                                    +

                                                                                                                    Go and the NATS server should be installed.

                                                                                                                    +

                                                                                                                    1. Start the NATS server

                                                                                                                    +
                                                                                                                    nats-server
                                                                                                                    +
                                                                                                                    +

                                                                                                                    2. Clone the repositories for each client examples

                                                                                                                    +
                                                                                                                    go get github.com/nats-io/go-nats
                                                                                                                    +git clone https://github.com/nats-io/node-nats.git
                                                                                                                    +git clone https://github.com/nats-io/ruby-nats.git
                                                                                                                    +
                                                                                                                    +

                                                                                                                    3. Run the Go client subscriber with queue group name

                                                                                                                    +
                                                                                                                    cd $GOPATH/src/github.com/nats-io/go-nats/examples
                                                                                                                    +go run nats-qsub.go foo my-queue
                                                                                                                    +
                                                                                                                    +

                                                                                                                    4. Install and run the Node client subscriber with queue group name

                                                                                                                    +
                                                                                                                    npm install nats
                                                                                                                    +cd node-nats/examples
                                                                                                                    +node node-sub foo my-queue
                                                                                                                    +
                                                                                                                    +

                                                                                                                    5. Install and run the Ruby client subscriber with queue group name

                                                                                                                    +
                                                                                                                    gem install nats
                                                                                                                    +nats-queue foo my-queue &
                                                                                                                    +
                                                                                                                    +

                                                                                                                    *6. Run another Go client subscriber without* the queue group.

                                                                                                                    +
                                                                                                                    cd $GOPATH/src/github.com/nats-io/go-nats/examples
                                                                                                                    +go run nats-sub.go foo
                                                                                                                    +
                                                                                                                    +

                                                                                                                    7. Publish a NATS message using the Go client

                                                                                                                    +
                                                                                                                    cd $GOPATH/src/github.com/nats-io/go-nats/examples
                                                                                                                    +go run nats-pub.go foo "Hello NATS!"
                                                                                                                    +
                                                                                                                    +

                                                                                                                    8. Verify message publication and receipt

                                                                                                                    +

                                                                                                                    You should see that the publisher sends the message: Published [foo] : 'Hello NATS!'

                                                                                                                    +

                                                                                                                    You should see that only one of the my-queue group subscribers receives the message. In addition, the Go client subscriber not in the my-queue group should also receive the message.

                                                                                                                    +

                                                                                                                    9. Publish another message

                                                                                                                    +
                                                                                                                    go run nats-pub.go foo "Hello NATS Again!"
                                                                                                                    +
                                                                                                                    +

                                                                                                                    You should see that a different queue group subscriber receives the message this time, chosen at random among the 3 queue group members.

                                                                                                                    + + +
                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +
                                                                                                                    + +

                                                                                                                    results matching ""

                                                                                                                    +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + +

                                                                                                                      No results matching ""

                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                      + + +
                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/developer/tutorials/reqreply.html b/docs/developer/tutorials/reqreply.html new file mode 100644 index 0000000..0ceecad --- /dev/null +++ b/docs/developer/tutorials/reqreply.html @@ -0,0 +1,2350 @@ + + + + + + + Explore NATS Request/Reply ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                      +
                                                                                                                      + + + + + + + + +
                                                                                                                      + +
                                                                                                                      + +
                                                                                                                      + + + + + + + + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      + +
                                                                                                                      + +

                                                                                                                      Explore NATS Request/Reply

                                                                                                                      +

                                                                                                                      NATS supports request/reply messaging. In this tutorial you explore how to exchange point-to-point messages using NATS.

                                                                                                                      +

                                                                                                                      Prerequisites

                                                                                                                      +

                                                                                                                      Go and the NATS server should be installed.

                                                                                                                      +

                                                                                                                      1. Start the NATS server

                                                                                                                      +
                                                                                                                      % gnatsd
                                                                                                                      +
                                                                                                                      +

                                                                                                                      2. Start two terminal sessions

                                                                                                                      +

                                                                                                                      You will use these sessions to run the NATS request and reply clients.

                                                                                                                      +

                                                                                                                      3. Change to the examples directory

                                                                                                                      +
                                                                                                                      % cd $GOPATH/src/github.com/nats-io/nats/examples
                                                                                                                      +
                                                                                                                      +

                                                                                                                      4. In one terminal, run the reply client listener

                                                                                                                      +
                                                                                                                      % go run nats-rply.go foo "this is my response"
                                                                                                                      +
                                                                                                                      +

                                                                                                                      You should see the message Receiver is listening, and that the NATS receiver client is listening on the "help.please" subject. The reply client acts as a receiver, listening for message requests. In NATS, the receiver is a subscriber.

                                                                                                                      +

                                                                                                                      5. In the other terminal, run the request client

                                                                                                                      +
                                                                                                                      % go run nats-req.go foo "request payload"
                                                                                                                      +
                                                                                                                      +

                                                                                                                      The NATS requestor client makes a request by sending the message "some message" on the “help.please” subject.

                                                                                                                      +

                                                                                                                      The NATS receiver client receives the message, formulates the reply ("OK, I CAN HELP!!!), and sends it to the inbox of the requester.

                                                                                                                      + + +
                                                                                                                      + +
                                                                                                                      +
                                                                                                                      +
                                                                                                                      + +

                                                                                                                      results matching ""

                                                                                                                      +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + +

                                                                                                                        No results matching ""

                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                        + + +
                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/gateways/gateway.html b/docs/gateways/gateway.html new file mode 100644 index 0000000..9321ab5 --- /dev/null +++ b/docs/gateways/gateway.html @@ -0,0 +1,2452 @@ + + + + + + + Configuration ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                        +
                                                                                                                        + + + + + + + + +
                                                                                                                        + +
                                                                                                                        + +
                                                                                                                        + + + + + + + + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        + +
                                                                                                                        + +

                                                                                                                        Gateway Configuration

                                                                                                                        +

                                                                                                                        The gateway configuration block is similar to a cluster block:

                                                                                                                        +
                                                                                                                        gateway {
                                                                                                                        +    name: "A"
                                                                                                                        +    listen: "localhost:7222"
                                                                                                                        +    authorization {
                                                                                                                        +        user: gwu
                                                                                                                        +        password: gwp
                                                                                                                        +    }
                                                                                                                        +
                                                                                                                        +    gateways: [
                                                                                                                        +        {name: "A", url: "nats-gateway://gwu:gwp@localhost:7222"},
                                                                                                                        +        {name: "B", url: "nats-gateway://gwu:gwp@localhost:7333"},
                                                                                                                        +        {name: "C", url: "nats-gateway://gwu:gwp@localhost:7444"},
                                                                                                                        +    ]
                                                                                                                        +}
                                                                                                                        +
                                                                                                                        +

                                                                                                                        One difference is that instead of routes you specify gateways. As expected self-gateway connections are ignored, so you can share gateway configurations with minimal fuzz.

                                                                                                                        +

                                                                                                                        Starting a server:

                                                                                                                        +
                                                                                                                        > nats-server -c A.conf
                                                                                                                        +[85803] 2019/05/07 10:50:55.902474 [INF] Starting nats-server version 2.0.0-RC11
                                                                                                                        +[85803] 2019/05/07 10:50:55.902547 [INF] Git commit [not set]
                                                                                                                        +[85803] 2019/05/07 10:50:55.903669 [INF] Gateway name is A
                                                                                                                        +[85803] 2019/05/07 10:50:55.903684 [INF] Listening for gateways connections on localhost:7222
                                                                                                                        +[85803] 2019/05/07 10:50:55.903696 [INF] Address for gateway "A" is localhost:7222
                                                                                                                        +[85803] 2019/05/07 10:50:55.903909 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                        +[85803] 2019/05/07 10:50:55.903914 [INF] Server id is NBHUDBF3TVJSWCDPG2HSKI4I2SBSPDTNYEXEMOFAZUZYXVA2IYRUGPZU
                                                                                                                        +[85803] 2019/05/07 10:50:55.903917 [INF] Server is ready
                                                                                                                        +[85803] 2019/05/07 10:50:56.830669 [INF] 127.0.0.1:50892 - gid:2 - Processing inbound gateway connection
                                                                                                                        +[85803] 2019/05/07 10:50:56.830673 [INF] 127.0.0.1:50891 - gid:1 - Processing inbound gateway connection
                                                                                                                        +[85803] 2019/05/07 10:50:56.831079 [INF] 127.0.0.1:50892 - gid:2 - Inbound gateway connection from "C" (NBHWDFO3KHANNI6UCEUL27VNWL7NWD2MC4BI4L2C7VVLFBSMZ3CRD7HE) registered
                                                                                                                        +[85803] 2019/05/07 10:50:56.831211 [INF] 127.0.0.1:50891 - gid:1 - Inbound gateway connection from "B" (ND2UJB3GFUHXOQ2UUMZQGOCL4QVR2LRJODPZH7MIPGLWCQRARJBU27C3) registered
                                                                                                                        +[85803] 2019/05/07 10:50:56.906103 [INF] Connecting to explicit gateway "B" (localhost:7333) at 127.0.0.1:7333
                                                                                                                        +[85803] 2019/05/07 10:50:56.906104 [INF] Connecting to explicit gateway "C" (localhost:7444) at 127.0.0.1:7444
                                                                                                                        +[85803] 2019/05/07 10:50:56.906404 [INF] 127.0.0.1:7333 - gid:3 - Creating outbound gateway connection to "B"
                                                                                                                        +[85803] 2019/05/07 10:50:56.906444 [INF] 127.0.0.1:7444 - gid:4 - Creating outbound gateway connection to "C"
                                                                                                                        +[85803] 2019/05/07 10:50:56.906647 [INF] 127.0.0.1:7444 - gid:4 - Outbound gateway connection to "C" (NBHWDFO3KHANNI6UCEUL27VNWL7NWD2MC4BI4L2C7VVLFBSMZ3CRD7HE) registered
                                                                                                                        +[85803] 2019/05/07 10:50:56.906772 [INF] 127.0.0.1:7333 - gid:3 - Outbound gateway connection to "B" (ND2UJB3GFUHXOQ2UUMZQGOCL4QVR2LRJODPZH7MIPGLWCQRARJBU27C3) registered
                                                                                                                        +
                                                                                                                        +

                                                                                                                        Once all the gateways are up, these clusters of one will forward messages as expected:

                                                                                                                        +
                                                                                                                        > nats-pub -s localhost:4444 foo bar
                                                                                                                        +Published [foo] : 'bar'
                                                                                                                        +
                                                                                                                        +# On a different session...
                                                                                                                        +> nats-sub -s localhost:4333 ">"
                                                                                                                        +Listening on [>]
                                                                                                                        +[#1] Received on [foo]: 'bar'
                                                                                                                        +
                                                                                                                        +

                                                                                                                        Gateway Configuration Block

                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                        PropertyDescription
                                                                                                                        advertiseHostport <host>:<port> to advertise to other gateways.
                                                                                                                        authorizationAuthorization block (same as other nats-server authorization configuration).
                                                                                                                        connect_retriesNumber of times the server will try to connect to a discovered gateway.
                                                                                                                        gatewaysList of Gateway entries - see below.
                                                                                                                        hostInterface where the gateway will listen for incomming gateway connections.
                                                                                                                        listenCombines host and port as <host>:<port>
                                                                                                                        nameName for this cluster, all gateways belonging to the same cluster, should specify the same name.
                                                                                                                        portPort where the gateway will listen for incomming gateway connections.
                                                                                                                        reject_unknownIf true, gateway will reject connections from gateways that are not configured in gateways.
                                                                                                                        tlsTLS configuration block (same as other nats-server tls configuration).
                                                                                                                        +

                                                                                                                        Gateway Entry

                                                                                                                        +

                                                                                                                        The gateways configuration block is a list of gateway entries with the following properties:

                                                                                                                        + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                        PropertyDescription
                                                                                                                        nameGateway name.
                                                                                                                        urlHostport <host>:<port> describing where the remote gateway can be reached. If multiple IPs are returned, one is randomly selected.
                                                                                                                        urlsA list of url
                                                                                                                        + + +
                                                                                                                        + +
                                                                                                                        +
                                                                                                                        +
                                                                                                                        + +

                                                                                                                        results matching ""

                                                                                                                        +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + +

                                                                                                                          No results matching ""

                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                          + + +
                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/gateways/index.html b/docs/gateways/index.html new file mode 100644 index 0000000..452d723 --- /dev/null +++ b/docs/gateways/index.html @@ -0,0 +1,2418 @@ + + + + + + + Gateways ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                          +
                                                                                                                          + + + + + + + + +
                                                                                                                          + +
                                                                                                                          + +
                                                                                                                          + + + + + + + + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          + +
                                                                                                                          + +

                                                                                                                          Gateways

                                                                                                                          +

                                                                                                                          Gateways enable connecting one or more clusters together; they allow the formation of super clusters from smaller clusters. Cluster and Gateway protocols listen in different ports. Clustering is used for adjacent servers; gateways are for joining clusters together. Typically all cluster nodes will also be gateway nodes, but this is not a requirement.

                                                                                                                          +

                                                                                                                          Gateway configuration is similar to clustering:

                                                                                                                          +
                                                                                                                            +
                                                                                                                          • gateways have a dedicated port where they listen for gateway requests
                                                                                                                          • +
                                                                                                                          • gateways gossip gateway members and remote discovered gateways
                                                                                                                          • +
                                                                                                                          +

                                                                                                                          Unlike clusters, gateways:

                                                                                                                          +
                                                                                                                            +
                                                                                                                          • don't form a full mesh
                                                                                                                          • +
                                                                                                                          • are bound by uni-directional connections
                                                                                                                          • +
                                                                                                                          +

                                                                                                                          Gateways exist to:

                                                                                                                          +
                                                                                                                            +
                                                                                                                          • reduce the number of connections required between servers
                                                                                                                          • +
                                                                                                                          • optimize the interest graph propagation
                                                                                                                          • +
                                                                                                                          +

                                                                                                                          Gateway Connections

                                                                                                                          +

                                                                                                                          A nats-server in a gateway role will specify a port where it will accept gateways connections. If the configuration specifies other external gateways, the gateway will create one outbound gateway connection for each gateway in its configuration. It will also gossip other gateways it knows or discovered.

                                                                                                                          +

                                                                                                                          If the local cluster has three gateway nodes, this means there will be three outbound connections to each external gateway.

                                                                                                                          +

                                                                                                                          Gateway Connections

                                                                                                                          +
                                                                                                                          +

                                                                                                                          In the example above cluster A has configured gateway connections for B (solid lines). B has discovered gateway connections to A (dotted lines). Note that the number of outgoing connections always matches the number of gateways with the same name.

                                                                                                                          +
                                                                                                                          +

                                                                                                                          Gateway Discovered Gateways

                                                                                                                          +
                                                                                                                          +

                                                                                                                          In this second example, again configured connections are shown with solid lines and discovered gateway connections are shown using dotted lines. Gateways A and C were both discovered via gossiping; B discovered A and A discovered C.

                                                                                                                          +
                                                                                                                          +

                                                                                                                          A key point in the description above is that each node in the cluster will make a connection to a single node in the remote cluster — a difference from the clustering protocol, where every node is directly connected to all other nodes.

                                                                                                                          +

                                                                                                                          For those mathematically inclined, cluster connections are N(N-1)/2 where N is the number of nodes in the cluster. On gateway configurations, outbound connections are the summation of Ni(M-1) where Ni is the number of nodes in a gateway i, and M is the total number of gateways. Inbound connections are the summation of U-Ni where U is the sum of all gateway nodes in all gateways, and N is the number of nodes in a gateway i. It works out that both inbound and outbound connection counts are the same.

                                                                                                                          +

                                                                                                                          The number of connections required to join clusters using clustering vs. gateways is apparent very quickly. For 3 clusters, with N nodes:

                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                          Nodes per ClusterFull Mesh ConnsGateway Conns
                                                                                                                          136
                                                                                                                          21512
                                                                                                                          33618
                                                                                                                          46624
                                                                                                                          510530
                                                                                                                          304005180
                                                                                                                          +

                                                                                                                          Interest Propagation

                                                                                                                          +

                                                                                                                          Gateways propagate interest using three different mechanisms:

                                                                                                                          +
                                                                                                                            +
                                                                                                                          • Optimistic Mode
                                                                                                                          • +
                                                                                                                          • Interest-only Mode
                                                                                                                          • +
                                                                                                                          • Queue Subscriptions
                                                                                                                          • +
                                                                                                                          +

                                                                                                                          Optimistic Mode

                                                                                                                          +

                                                                                                                          When a publisher in A publishes "foo", the A gateway will check if cluster B has registered no interest in "foo". If not, it forwards "foo" to B. If upon receiving "foo", B has no subscribers on "foo", B will send a gateway protocol message to A expressing that it has no interest on "foo", preventing future messages on "foo" from being forwarded.

                                                                                                                          +

                                                                                                                          Should a subscriber on B create a subscription to "foo", B knowing that it had previously rejected interest on foo, will send a gateway protocol message to cancel its previous no interest on "foo" in A.

                                                                                                                          +

                                                                                                                          Interest-only Mode

                                                                                                                          +

                                                                                                                          When a gateway on A sends many messages on various subjects for which B has no interest. B sends a gateway protocol message for A to stop sending optimistically, and instead send if there's known interest in the subject. As subscriptions come and go on B, B will update its subject interest with A.

                                                                                                                          +

                                                                                                                          Queue Subscriptions

                                                                                                                          +

                                                                                                                          When a queue subscriber creates a new subscription, the gateway propagates the subscription interest to other gateways. The subscription interest is only propagated once per Account and subject. When the last queue subscriber is gone, the cluster interest is removed.

                                                                                                                          +

                                                                                                                          Queue subscriptions work on Interest-only Mode to honor NATS' queue semantics across the Super Cluster. For each queue group, a message is only delivered to a single queue subscriber. Only when a local queue group member is not found, is a message forwarded to a different interested cluster; gateways will always try to serve local queue subscribers first and only failover when a local queue subscriber is not found.

                                                                                                                          +

                                                                                                                          Gateway Configuration

                                                                                                                          +

                                                                                                                          The Gateway Configuration document describes all the options available to gateways.

                                                                                                                          + + +
                                                                                                                          + +
                                                                                                                          +
                                                                                                                          +
                                                                                                                          + +

                                                                                                                          results matching ""

                                                                                                                          +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + +

                                                                                                                            No results matching ""

                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                            + + +
                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/gateways/simple.svg b/docs/gateways/simple.svg new file mode 100644 index 0000000..1fade1e --- /dev/null +++ b/docs/gateways/simple.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + Produced by OmniGraffle 7.10.2 + 2019-05-07 16:42:18 +0000 + + + Canvas 1 + + + Layer 1 + + + + + A1 + + + + + + + A2 + + + + + + + A3 + + + + + + + B1 + + + + + + + B2 + + + + + + + + + + + + + + + + + + + + diff --git a/docs/gateways/three_gw.svg b/docs/gateways/three_gw.svg new file mode 100644 index 0000000..1fa78b4 --- /dev/null +++ b/docs/gateways/three_gw.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + Produced by OmniGraffle 7.10.2 + 2019-05-07 16:43:34 +0000 + + + Canvas 1 + + + Layer 1 + + + + + A1 + + + + + + + A2 + + + + + + + A3 + + + + + + + B1 + + + + + + + B2 + + + + + + + + + + + + + + + + + + + + + + C1 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/gitbook/fonts/fontawesome/FontAwesome.otf b/docs/gitbook/fonts/fontawesome/FontAwesome.otf new file mode 100644 index 0000000..d4de13e Binary files /dev/null and b/docs/gitbook/fonts/fontawesome/FontAwesome.otf differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot new file mode 100644 index 0000000..c7b00d2 Binary files /dev/null and b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg new file mode 100644 index 0000000..8b66187 --- /dev/null +++ b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf new file mode 100644 index 0000000..f221e50 Binary files /dev/null and b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff new file mode 100644 index 0000000..6e7483c Binary files /dev/null and b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 new file mode 100644 index 0000000..7eb74fd Binary files /dev/null and b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 differ diff --git a/docs/gitbook/gitbook-plugin-fontsettings/fontsettings.js b/docs/gitbook/gitbook-plugin-fontsettings/fontsettings.js new file mode 100644 index 0000000..ff7be71 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-fontsettings/fontsettings.js @@ -0,0 +1,240 @@ +require(['gitbook', 'jquery'], function(gitbook, $) { + // Configuration + var MAX_SIZE = 4, + MIN_SIZE = 0, + BUTTON_ID; + + // Current fontsettings state + var fontState; + + // Default themes + var THEMES = [ + { + config: 'white', + text: 'White', + id: 0 + }, + { + config: 'sepia', + text: 'Sepia', + id: 1 + }, + { + config: 'night', + text: 'Night', + id: 2 + } + ]; + + // Default font families + var FAMILIES = [ + { + config: 'serif', + text: 'Serif', + id: 0 + }, + { + config: 'sans', + text: 'Sans', + id: 1 + } + ]; + + // Return configured themes + function getThemes() { + return THEMES; + } + + // Modify configured themes + function setThemes(themes) { + THEMES = themes; + updateButtons(); + } + + // Return configured font families + function getFamilies() { + return FAMILIES; + } + + // Modify configured font families + function setFamilies(families) { + FAMILIES = families; + updateButtons(); + } + + // Save current font settings + function saveFontSettings() { + gitbook.storage.set('fontState', fontState); + update(); + } + + // Increase font size + function enlargeFontSize(e) { + e.preventDefault(); + if (fontState.size >= MAX_SIZE) return; + + fontState.size++; + saveFontSettings(); + } + + // Decrease font size + function reduceFontSize(e) { + e.preventDefault(); + if (fontState.size <= MIN_SIZE) return; + + fontState.size--; + saveFontSettings(); + } + + // Change font family + function changeFontFamily(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var familyId = getFontFamilyId(configName); + fontState.family = familyId; + saveFontSettings(); + } + + // Change type of color theme + function changeColorTheme(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var $book = gitbook.state.$book; + + // Remove currently applied color theme + if (fontState.theme !== 0) + $book.removeClass('color-theme-'+fontState.theme); + + // Set new color theme + var themeId = getThemeId(configName); + fontState.theme = themeId; + if (fontState.theme !== 0) + $book.addClass('color-theme-'+fontState.theme); + + saveFontSettings(); + } + + // Return the correct id for a font-family config key + // Default to first font-family + function getFontFamilyId(configName) { + // Search for plugin configured font family + var configFamily = $.grep(FAMILIES, function(family) { + return family.config == configName; + })[0]; + // Fallback to default font family + return (!!configFamily)? configFamily.id : 0; + } + + // Return the correct id for a theme config key + // Default to first theme + function getThemeId(configName) { + // Search for plugin configured theme + var configTheme = $.grep(THEMES, function(theme) { + return theme.config == configName; + })[0]; + // Fallback to default theme + return (!!configTheme)? configTheme.id : 0; + } + + function update() { + var $book = gitbook.state.$book; + + $('.font-settings .font-family-list li').removeClass('active'); + $('.font-settings .font-family-list li:nth-child('+(fontState.family+1)+')').addClass('active'); + + $book[0].className = $book[0].className.replace(/\bfont-\S+/g, ''); + $book.addClass('font-size-'+fontState.size); + $book.addClass('font-family-'+fontState.family); + + if(fontState.theme !== 0) { + $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, ''); + $book.addClass('color-theme-'+fontState.theme); + } + } + + function init(config) { + // Search for plugin configured font family + var configFamily = getFontFamilyId(config.family), + configTheme = getThemeId(config.theme); + + // Instantiate font state object + fontState = gitbook.storage.get('fontState', { + size: config.size || 2, + family: configFamily, + theme: configTheme + }); + + update(); + } + + function updateButtons() { + // Remove existing fontsettings buttons + if (!!BUTTON_ID) { + gitbook.toolbar.removeButton(BUTTON_ID); + } + + // Create buttons in toolbar + BUTTON_ID = gitbook.toolbar.createButton({ + icon: 'fa fa-font', + label: 'Font Settings', + className: 'font-settings', + dropdown: [ + [ + { + text: 'A', + className: 'font-reduce', + onClick: reduceFontSize + }, + { + text: 'A', + className: 'font-enlarge', + onClick: enlargeFontSize + } + ], + $.map(FAMILIES, function(family) { + family.onClick = function(e) { + return changeFontFamily(family.config, e); + }; + + return family; + }), + $.map(THEMES, function(theme) { + theme.onClick = function(e) { + return changeColorTheme(theme.config, e); + }; + + return theme; + }) + ] + }); + } + + // Init configuration at start + gitbook.events.bind('start', function(e, config) { + var opts = config.fontsettings; + + // Generate buttons at start + updateButtons(); + + // Init current settings + init(opts); + }); + + // Expose API + gitbook.fontsettings = { + enlargeFontSize: enlargeFontSize, + reduceFontSize: reduceFontSize, + setTheme: changeColorTheme, + setFamily: changeFontFamily, + getThemes: getThemes, + setThemes: setThemes, + getFamilies: getFamilies, + setFamilies: setFamilies + }; +}); + + diff --git a/docs/gitbook/gitbook-plugin-fontsettings/website.css b/docs/gitbook/gitbook-plugin-fontsettings/website.css new file mode 100644 index 0000000..26591fe --- /dev/null +++ b/docs/gitbook/gitbook-plugin-fontsettings/website.css @@ -0,0 +1,291 @@ +/* + * Theme 1 + */ +.color-theme-1 .dropdown-menu { + background-color: #111111; + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #111111; +} +.color-theme-1 .dropdown-menu .buttons { + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .button { + color: #afa790; +} +.color-theme-1 .dropdown-menu .button:hover { + color: #73553c; +} +/* + * Theme 2 + */ +.color-theme-2 .dropdown-menu { + background-color: #2d3143; + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #2d3143; +} +.color-theme-2 .dropdown-menu .buttons { + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .button { + color: #62677f; +} +.color-theme-2 .dropdown-menu .button:hover { + color: #f4f4f5; +} +.book .book-header .font-settings .font-enlarge { + line-height: 30px; + font-size: 1.4em; +} +.book .book-header .font-settings .font-reduce { + line-height: 30px; + font-size: 1em; +} +.book.color-theme-1 .book-body { + color: #704214; + background: #f3eacb; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section { + background: #f3eacb; +} +.book.color-theme-2 .book-body { + color: #bdcadb; + background: #1c1f2b; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section { + background: #1c1f2b; +} +.book.font-size-0 .book-body .page-inner section { + font-size: 1.2rem; +} +.book.font-size-1 .book-body .page-inner section { + font-size: 1.4rem; +} +.book.font-size-2 .book-body .page-inner section { + font-size: 1.6rem; +} +.book.font-size-3 .book-body .page-inner section { + font-size: 2.2rem; +} +.book.font-size-4 .book-body .page-inner section { + font-size: 4rem; +} +.book.font-family-0 { + font-family: Georgia, serif; +} +.book.font-family-1 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal { + color: #704214; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { + background: #fdf6e3; + color: #657b83; + border-color: #f8df9c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #f5d06c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr { + color: inherit; + background-color: #fdf6e3; + border-color: #444444; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #fbeecb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal { + color: #bdcadb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a { + color: #3eb1d0; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #fffffa; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr { + background-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { + color: #9dbed8; + background: #2d3143; + border-color: #2d3143; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: #282a39; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr { + color: #b6c2d2; + background-color: #2d3143; + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #35394b; +} +.book.color-theme-1 .book-header { + color: #afa790; + background: transparent; +} +.book.color-theme-1 .book-header .btn { + color: #afa790; +} +.book.color-theme-1 .book-header .btn:hover { + color: #73553c; + background: none; +} +.book.color-theme-1 .book-header h1 { + color: #704214; +} +.book.color-theme-2 .book-header { + color: #7e888b; + background: transparent; +} +.book.color-theme-2 .book-header .btn { + color: #3b3f54; +} +.book.color-theme-2 .book-header .btn:hover { + color: #fffff5; + background: none; +} +.book.color-theme-2 .book-header h1 { + color: #bdcadb; +} +.book.color-theme-1 .book-body .navigation { + color: #afa790; +} +.book.color-theme-1 .book-body .navigation:hover { + color: #73553c; +} +.book.color-theme-2 .book-body .navigation { + color: #383f52; +} +.book.color-theme-2 .book-body .navigation:hover { + color: #fffff5; +} +/* + * Theme 1 + */ +.book.color-theme-1 .book-summary { + color: #afa790; + background: #111111; + border-right: 1px solid rgba(0, 0, 0, 0.07); +} +.book.color-theme-1 .book-summary .book-search { + background: transparent; +} +.book.color-theme-1 .book-summary .book-search input, +.book.color-theme-1 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-1 .book-summary ul.summary li.divider { + background: #7e888b; + box-shadow: none; +} +.book.color-theme-1 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-1 .book-summary ul.summary li.done > a { + color: #877f6a; +} +.book.color-theme-1 .book-summary ul.summary li a, +.book.color-theme-1 .book-summary ul.summary li span { + color: #877f6a; + background: transparent; + font-weight: normal; +} +.book.color-theme-1 .book-summary ul.summary li.active > a, +.book.color-theme-1 .book-summary ul.summary li a:hover { + color: #704214; + background: transparent; + font-weight: normal; +} +/* + * Theme 2 + */ +.book.color-theme-2 .book-summary { + color: #bcc1d2; + background: #2d3143; + border-right: none; +} +.book.color-theme-2 .book-summary .book-search { + background: transparent; +} +.book.color-theme-2 .book-summary .book-search input, +.book.color-theme-2 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-2 .book-summary ul.summary li.divider { + background: #272a3a; + box-shadow: none; +} +.book.color-theme-2 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-2 .book-summary ul.summary li.done > a { + color: #62687f; +} +.book.color-theme-2 .book-summary ul.summary li a, +.book.color-theme-2 .book-summary ul.summary li span { + color: #c1c6d7; + background: transparent; + font-weight: 600; +} +.book.color-theme-2 .book-summary ul.summary li.active > a, +.book.color-theme-2 .book-summary ul.summary li a:hover { + color: #f4f4f5; + background: #252737; + font-weight: 600; +} diff --git a/docs/gitbook/gitbook-plugin-lunr/lunr.min.js b/docs/gitbook/gitbook-plugin-lunr/lunr.min.js new file mode 100644 index 0000000..6aa6bc7 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-lunr/lunr.min.js @@ -0,0 +1,7 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.12 + * Copyright (C) 2015 Oliver Nightingale + * MIT Licensed + * @license + */ +!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.12",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){return arguments.length&&null!=t&&void 0!=t?Array.isArray(t)?t.map(function(t){return t.toLowerCase()}):t.toString().trim().toLowerCase().split(/[\s\-]+/):[]},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;ncode { + position: relative; + border-left: 10px solid #358ccb; + box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf; + background-color: #fdfdfd; + background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%); + background-size: 3em 3em; + background-origin: content-box; + background-attachment: local; +} + +code[class*="language"] { + max-height: inherit; + height: inherit; + padding: 0 1em; + display: block; + overflow: auto; +} + +/* Margin bottom to accommodate shadow */ +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background-color: #fdfdfd; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin-bottom: 1em; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + position: relative; + padding: .2em; + border-radius: 0.3em; + color: #c92c2c; + border: 1px solid rgba(0, 0, 0, 0.1); + display: inline; + white-space: normal; +} + +pre[class*="language-"]:before, +pre[class*="language-"]:after { + content: ''; + z-index: -2; + display: block; + position: absolute; + bottom: 0.75em; + left: 0.18em; + width: 40%; + height: 20%; + max-height: 13em; + box-shadow: 0px 13px 8px #979797; + -webkit-transform: rotate(-2deg); + -moz-transform: rotate(-2deg); + -ms-transform: rotate(-2deg); + -o-transform: rotate(-2deg); + transform: rotate(-2deg); +} + +:not(pre) > code[class*="language-"]:after, +pre[class*="language-"]:after { + right: 0.75em; + left: auto; + -webkit-transform: rotate(2deg); + -moz-transform: rotate(2deg); + -ms-transform: rotate(2deg); + -o-transform: rotate(2deg); + transform: rotate(2deg); +} + +.token.comment, +.token.block-comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #7D8B99; +} + +.token.punctuation { + color: #5F6364; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.function-name, +.token.constant, +.token.symbol, +.token.deleted { + color: #c92c2c; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.function, +.token.builtin, +.token.inserted { + color: #2f9c0a; +} + +.token.operator, +.token.entity, +.token.url, +.token.variable { + color: #a67f59; + background: rgba(255, 255, 255, 0.5); +} + +.token.atrule, +.token.attr-value, +.token.keyword, +.token.class-name { + color: #1990b8; +} + +.token.regex, +.token.important { + color: #e90; +} + +.language-css .token.string, +.style .token.string { + color: #a67f59; + background: rgba(255, 255, 255, 0.5); +} + +.token.important { + font-weight: normal; +} + +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.namespace { + opacity: .7; +} + +@media screen and (max-width: 767px) { + pre[class*="language-"]:before, + pre[class*="language-"]:after { + bottom: 14px; + box-shadow: none; + } + +} + +/* Plugin styles */ +.token.tab:not(:empty):before, +.token.cr:before, +.token.lf:before { + color: #e0d7d1; +} + +/* Plugin styles: Line Numbers */ +pre[class*="language-"].line-numbers.line-numbers { + padding-left: 0; +} + +pre[class*="language-"].line-numbers.line-numbers code { + padding-left: 3.8em; +} + +pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows { + left: 0; +} + +/* Plugin styles: Line Highlight */ +pre[class*="language-"][data-line] { + padding-top: 0; + padding-bottom: 0; + padding-left: 0; +} +pre[data-line] code { + position: relative; + padding-left: 4em; +} +pre .line-highlight { + margin-top: 0; +} diff --git a/docs/gitbook/gitbook-plugin-prism/prism-dark.css b/docs/gitbook/gitbook-plugin-prism/prism-dark.css new file mode 100644 index 0000000..73387bf --- /dev/null +++ b/docs/gitbook/gitbook-plugin-prism/prism-dark.css @@ -0,0 +1,129 @@ +/** + * prism.js Dark theme for JavaScript, CSS and HTML + * Based on the slides of the talk โ€œ/Reg(exp){2}lained/โ€ + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: white; + background: none; + text-shadow: 0 -.1em .2em black; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +pre[class*="language-"], +:not(pre) > code[class*="language-"] { + background: hsl(30, 20%, 25%); +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border: .3em solid hsl(30, 20%, 40%); + border-radius: .5em; + box-shadow: 1px 1px .5em black inset; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .15em .2em .05em; + border-radius: .3em; + border: .13em solid hsl(30, 20%, 40%); + box-shadow: 1px 1px .3em -.1em black inset; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: hsl(30, 20%, 50%); +} + +.token.punctuation { + opacity: .7; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol { + color: hsl(350, 40%, 70%); +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: hsl(75, 70%, 60%); +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: hsl(40, 90%, 60%); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: hsl(350, 40%, 70%); +} + +.token.regex, +.token.important { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.token.deleted { + color: red; +} diff --git a/docs/gitbook/gitbook-plugin-prism/prism-funky.css b/docs/gitbook/gitbook-plugin-prism/prism-funky.css new file mode 100644 index 0000000..2eda0b0 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-prism/prism-funky.css @@ -0,0 +1,117 @@ +/** + * prism.js Funky theme + * Based on โ€œPolyfilling the gapsโ€ talk slides http://lea.verou.me/polyfilling-the-gaps/ + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: .4em .8em; + margin: .5em 0; + overflow: auto; + background: url('data:image/svg+xml;charset=utf-8,%0D%0A%0D%0A%0D%0A<%2Fsvg>'); + background-size: 1em 1em; +} + +code[class*="language-"] { + background: black; + color: white; + box-shadow: -.3em 0 0 .3em black, .3em 0 0 .3em black; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .2em; + border-radius: .3em; + box-shadow: none; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #aaa; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol { + color: #0cf; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin { + color: yellow; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.toke.variable, +.token.inserted { + color: yellowgreen; +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: deeppink; +} + +.token.regex, +.token.important { + color: orange; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.token.deleted { + color: red; +} diff --git a/docs/gitbook/gitbook-plugin-prism/prism-okaidia.css b/docs/gitbook/gitbook-plugin-prism/prism-okaidia.css new file mode 100644 index 0000000..767417b --- /dev/null +++ b/docs/gitbook/gitbook-plugin-prism/prism-okaidia.css @@ -0,0 +1,123 @@ +/** + * okaidia theme for JavaScript, CSS and HTML + * Loosely based on Monokai textmate theme by http://www.monokai.nl/ + * @author ocodia + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #f8f8f2; + background: none; + text-shadow: 0 1px rgba(0, 0, 0, 0.3); + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border-radius: 0.3em; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #272822; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #f8f8f2; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #f92672; +} + +.token.boolean, +.token.number { + color: #ae81ff; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #a6e22e; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} + +.token.atrule, +.token.attr-value, +.token.function, +.token.class-name { + color: #e6db74; +} + +.token.keyword { + color: #66d9ef; +} + +.token.regex, +.token.important { + color: #fd971f; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docs/gitbook/gitbook-plugin-prism/prism-solarizedlight.css b/docs/gitbook/gitbook-plugin-prism/prism-solarizedlight.css new file mode 100644 index 0000000..6c4715e --- /dev/null +++ b/docs/gitbook/gitbook-plugin-prism/prism-solarizedlight.css @@ -0,0 +1,150 @@ +/* + Solarized Color Schemes originally by Ethan Schoonover + http://ethanschoonover.com/solarized + + Ported for PrismJS by Hector Matos + Website: https://krakendev.io + Twitter Handle: https://twitter.com/allonsykraken) +*/ + +/* +SOLARIZED HEX +--------- ------- +base03 #002b36 +base02 #073642 +base01 #586e75 +base00 #657b83 +base0 #839496 +base1 #93a1a1 +base2 #eee8d5 +base3 #fdf6e3 +yellow #b58900 +orange #cb4b16 +red #dc322f +magenta #d33682 +violet #6c71c4 +blue #268bd2 +cyan #2aa198 +green #859900 +*/ + +code[class*="language-"], +pre[class*="language-"] { + color: #657b83; /* base00 */ + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + background: #073642; /* base02 */ +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + background: #073642; /* base02 */ +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + border-radius: 0.3em; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background-color: #fdf6e3; /* base3 */ +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #93a1a1; /* base1 */ +} + +.token.punctuation { + color: #586e75; /* base01 */ +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #268bd2; /* blue */ +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.url, +.token.inserted { + color: #2aa198; /* cyan */ +} + +.token.entity { + color: #657b83; /* base00 */ + background: #eee8d5; /* base2 */ +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #859900; /* green */ +} + +.token.function, +.token.class-name { + color: #b58900; /* yellow */ +} + +.token.regex, +.token.important, +.token.variable { + color: #cb4b16; /* orange */ +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docs/gitbook/gitbook-plugin-prism/prism-tomorrow.css b/docs/gitbook/gitbook-plugin-prism/prism-tomorrow.css new file mode 100644 index 0000000..a0eeff0 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-prism/prism-tomorrow.css @@ -0,0 +1,122 @@ +/** + * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML + * Based on https://github.com/chriskempson/tomorrow-theme + * @author Rose Pritchard + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #ccc; + background: none; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #2d2d2d; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.block-comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #999; +} + +.token.punctuation { + color: #ccc; +} + +.token.tag, +.token.attr-name, +.token.namespace, +.token.deleted { + color: #e2777a; +} + +.token.function-name { + color: #6196cc; +} + +.token.boolean, +.token.number, +.token.function { + color: #f08d49; +} + +.token.property, +.token.class-name, +.token.constant, +.token.symbol { + color: #f8c555; +} + +.token.selector, +.token.important, +.token.atrule, +.token.keyword, +.token.builtin { + color: #cc99cd; +} + +.token.string, +.token.char, +.token.attr-value, +.token.regex, +.token.variable { + color: #7ec699; +} + +.token.operator, +.token.entity, +.token.url { + color: #67cdcc; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +.token.inserted { + color: green; +} diff --git a/docs/gitbook/gitbook-plugin-prism/prism-twilight.css b/docs/gitbook/gitbook-plugin-prism/prism-twilight.css new file mode 100644 index 0000000..662df42 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-prism/prism-twilight.css @@ -0,0 +1,199 @@ +/** + * prism.js Twilight theme + * Based (more or less) on the Twilight theme originally of Textmate fame. + * @author Remy Bach + */ +code[class*="language-"], +pre[class*="language-"] { + color: white; + background: none; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + text-shadow: 0 -.1em .2em black; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"], +:not(pre) > code[class*="language-"] { + background: hsl(0, 0%, 8%); /* #141414 */ +} + +/* Code blocks */ +pre[class*="language-"] { + border-radius: .5em; + border: .3em solid hsl(0, 0%, 33%); /* #282A2B */ + box-shadow: 1px 1px .5em black inset; + margin: .5em 0; + overflow: auto; + padding: 1em; +} + +pre[class*="language-"]::-moz-selection { + /* Firefox */ + background: hsl(200, 4%, 16%); /* #282A2B */ +} + +pre[class*="language-"]::selection { + /* Safari */ + background: hsl(200, 4%, 16%); /* #282A2B */ +} + +/* Text Selection colour */ +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */ +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */ +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + border-radius: .3em; + border: .13em solid hsl(0, 0%, 33%); /* #545454 */ + box-shadow: 1px 1px .3em -.1em black inset; + padding: .15em .2em .05em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: hsl(0, 0%, 47%); /* #777777 */ +} + +.token.punctuation { + opacity: .7; +} + +.namespace { + opacity: .7; +} + +.token.tag, +.token.boolean, +.token.number, +.token.deleted { + color: hsl(14, 58%, 55%); /* #CF6A4C */ +} + +.token.keyword, +.token.property, +.token.selector, +.token.constant, +.token.symbol, +.token.builtin { + color: hsl(53, 89%, 79%); /* #F9EE98 */ +} + +.token.attr-name, +.token.attr-value, +.token.string, +.token.char, +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable, +.token.inserted { + color: hsl(76, 21%, 52%); /* #8F9D6A */ +} + +.token.atrule { + color: hsl(218, 22%, 55%); /* #7587A6 */ +} + +.token.regex, +.token.important { + color: hsl(42, 75%, 65%); /* #E9C062 */ +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +pre[data-line] { + padding: 1em 0 1em 3em; + position: relative; +} + +/* Markup */ +.language-markup .token.tag, +.language-markup .token.attr-name, +.language-markup .token.punctuation { + color: hsl(33, 33%, 52%); /* #AC885B */ +} + +/* Make the tokens sit above the line highlight so the colours don't look faded. */ +.token { + position: relative; + z-index: 1; +} + +.line-highlight { + background: hsla(0, 0%, 33%, 0.25); /* #545454 */ + background: linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */ + border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */ + border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */ + left: 0; + line-height: inherit; + margin-top: 0.75em; /* Same as .prismโ€™s padding-top */ + padding: inherit 0; + pointer-events: none; + position: absolute; + right: 0; + white-space: pre; + z-index: 0; +} + +.line-highlight:before, +.line-highlight[data-end]:after { + background-color: hsl(215, 15%, 59%); /* #8794A6 */ + border-radius: 999px; + box-shadow: 0 1px white; + color: hsl(24, 20%, 95%); /* #F5F2F0 */ + content: attr(data-start); + font: bold 65%/1.5 sans-serif; + left: .6em; + min-width: 1em; + padding: 0 .5em; + position: absolute; + text-align: center; + text-shadow: none; + top: .4em; + vertical-align: .3em; +} + +.line-highlight[data-end]:after { + bottom: .4em; + content: attr(data-end); + top: auto; +} diff --git a/docs/gitbook/gitbook-plugin-prism/prism.css b/docs/gitbook/gitbook-plugin-prism/prism.css new file mode 100644 index 0000000..ec469f0 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-prism/prism.css @@ -0,0 +1,139 @@ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + font-size: 1em; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, pre[class*="language-"] ::selection, +code[class*="language-"]::selection, code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docs/gitbook/gitbook-plugin-search/lunr.min.js b/docs/gitbook/gitbook-plugin-search/lunr.min.js new file mode 100644 index 0000000..6aa6bc7 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-search/lunr.min.js @@ -0,0 +1,7 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.12 + * Copyright (C) 2015 Oliver Nightingale + * MIT Licensed + * @license + */ +!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.12",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){return arguments.length&&null!=t&&void 0!=t?Array.isArray(t)?t.map(function(t){return t.toLowerCase()}):t.toString().trim().toLowerCase().split(/[\s\-]+/):[]},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n element for each result + res.results.forEach(function(res) { + var $li = $('
                                                                                                                          • ', { + 'class': 'search-results-item' + }); + + var $title = $('

                                                                                                                            '); + + var $link = $('', { + 'href': gitbook.state.basePath + '/' + res.url, + 'text': res.title + }); + + var content = res.body.trim(); + if (content.length > MAX_DESCRIPTION_SIZE) { + content = content.slice(0, MAX_DESCRIPTION_SIZE).trim()+'...'; + } + var $content = $('

                                                                                                                            ').html(content); + + $link.appendTo($title); + $title.appendTo($li); + $content.appendTo($li); + $li.appendTo($searchList); + }); + } + + function launchSearch(q) { + // Add class for loading + $body.addClass('with-search'); + $body.addClass('search-loading'); + + // Launch search query + throttle(gitbook.search.query(q, 0, MAX_RESULTS) + .then(function(results) { + displayResults(results); + }) + .always(function() { + $body.removeClass('search-loading'); + }), 1000); + } + + function closeSearch() { + $body.removeClass('with-search'); + $bookSearchResults.removeClass('open'); + } + + function launchSearchFromQueryString() { + var q = getParameterByName('q'); + if (q && q.length > 0) { + // Update search input + $searchInput.val(q); + + // Launch search + launchSearch(q); + } + } + + function bindSearch() { + // Bind DOM + $searchInput = $('#book-search-input input'); + $bookSearchResults = $('#book-search-results'); + $searchList = $bookSearchResults.find('.search-results-list'); + $searchTitle = $bookSearchResults.find('.search-results-title'); + $searchResultsCount = $searchTitle.find('.search-results-count'); + $searchQuery = $searchTitle.find('.search-query'); + + // Launch query based on input content + function handleUpdate() { + var q = $searchInput.val(); + + if (q.length == 0) { + closeSearch(); + } + else { + launchSearch(q); + } + } + + // Detect true content change in search input + // Workaround for IE < 9 + var propertyChangeUnbound = false; + $searchInput.on('propertychange', function(e) { + if (e.originalEvent.propertyName == 'value') { + handleUpdate(); + } + }); + + // HTML5 (IE9 & others) + $searchInput.on('input', function(e) { + // Unbind propertychange event for IE9+ + if (!propertyChangeUnbound) { + $(this).unbind('propertychange'); + propertyChangeUnbound = true; + } + + handleUpdate(); + }); + + // Push to history on blur + $searchInput.on('blur', function(e) { + // Update history state + if (usePushState) { + var uri = updateQueryString('q', $(this).val()); + history.pushState({ path: uri }, null, uri); + } + }); + } + + gitbook.events.on('page.change', function() { + bindSearch(); + closeSearch(); + + // Launch search based on query parameter + if (gitbook.search.isInitialized()) { + launchSearchFromQueryString(); + } + }); + + gitbook.events.on('search.ready', function() { + bindSearch(); + + // Launch search from query param at start + launchSearchFromQueryString(); + }); + + function getParameterByName(name) { + var url = window.location.href; + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)', 'i'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); + } + + function updateQueryString(key, value) { + value = encodeURIComponent(value); + + var url = window.location.href; + var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'), + hash; + + if (re.test(url)) { + if (typeof value !== 'undefined' && value !== null) + return url.replace(re, '$1' + key + '=' + value + '$2$3'); + else { + hash = url.split('#'); + url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + } + else { + if (typeof value !== 'undefined' && value !== null) { + var separator = url.indexOf('?') !== -1 ? '&' : '?'; + hash = url.split('#'); + url = hash[0] + separator + key + '=' + value; + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + else + return url; + } + } +}); diff --git a/docs/gitbook/gitbook-plugin-sharing/buttons.js b/docs/gitbook/gitbook-plugin-sharing/buttons.js new file mode 100644 index 0000000..709a4e4 --- /dev/null +++ b/docs/gitbook/gitbook-plugin-sharing/buttons.js @@ -0,0 +1,90 @@ +require(['gitbook', 'jquery'], function(gitbook, $) { + var SITES = { + 'facebook': { + 'label': 'Facebook', + 'icon': 'fa fa-facebook', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://www.facebook.com/sharer/sharer.php?s=100&p[url]='+encodeURIComponent(location.href)); + } + }, + 'twitter': { + 'label': 'Twitter', + 'icon': 'fa fa-twitter', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://twitter.com/home?status='+encodeURIComponent(document.title+' '+location.href)); + } + }, + 'google': { + 'label': 'Google+', + 'icon': 'fa fa-google-plus', + 'onClick': function(e) { + e.preventDefault(); + window.open('https://plus.google.com/share?url='+encodeURIComponent(location.href)); + } + }, + 'weibo': { + 'label': 'Weibo', + 'icon': 'fa fa-weibo', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://service.weibo.com/share/share.php?content=utf-8&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)); + } + }, + 'instapaper': { + 'label': 'Instapaper', + 'icon': 'fa fa-instapaper', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://www.instapaper.com/text?u='+encodeURIComponent(location.href)); + } + }, + 'vk': { + 'label': 'VK', + 'icon': 'fa fa-vk', + 'onClick': function(e) { + e.preventDefault(); + window.open('http://vkontakte.ru/share.php?url='+encodeURIComponent(location.href)); + } + } + }; + + + + gitbook.events.bind('start', function(e, config) { + var opts = config.sharing; + + // Create dropdown menu + var menu = $.map(opts.all, function(id) { + var site = SITES[id]; + + return { + text: site.label, + onClick: site.onClick + }; + }); + + // Create main button with dropdown + if (menu.length > 0) { + gitbook.toolbar.createButton({ + icon: 'fa fa-share-alt', + label: 'Share', + position: 'right', + dropdown: [menu] + }); + } + + // Direct actions to share + $.each(SITES, function(sideId, site) { + if (!opts[sideId]) return; + + gitbook.toolbar.createButton({ + icon: site.icon, + label: site.text, + position: 'right', + onClick: site.onClick + }); + }); + }); +}); diff --git a/docs/gitbook/gitbook-plugin-toggle-chapters/toggle.css b/docs/gitbook/gitbook-plugin-toggle-chapters/toggle.css new file mode 100644 index 0000000..e69de29 diff --git a/docs/gitbook/gitbook-plugin-toggle-chapters/toggle.js b/docs/gitbook/gitbook-plugin-toggle-chapters/toggle.js new file mode 100644 index 0000000..12f619a --- /dev/null +++ b/docs/gitbook/gitbook-plugin-toggle-chapters/toggle.js @@ -0,0 +1,27 @@ +require(["gitbook", "jQuery"], function(gitbook, $) { + + function expand(chapter) { + chapter.show(); + if (chapter.parent().attr('class') != 'summary' + && chapter.parent().attr('class') != 'book-summary' + && chapter.length != 0 + ) { + expand(chapter.parent()); + } + } + + gitbook.events.bind("page.change", function() { + $('li.chapter').children('ul.articles').hide(); + $chapter = $('li.chapter.active'); + $children = $chapter.children('ul.articles'); + $parent = $chapter.parent(); + $siblings = $chapter.siblings().children('ul.articles'); + + expand($chapter); + + if ($children.length > 0) { + $children.show(); + } + }); + +}); diff --git a/docs/gitbook/gitbook.js b/docs/gitbook/gitbook.js new file mode 100644 index 0000000..13077b4 --- /dev/null +++ b/docs/gitbook/gitbook.js @@ -0,0 +1,4 @@ +!function e(t,n,r){function o(s,a){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[s]={exports:{}};t[s][0].call(l.exports,function(e){var n=t[s][1][e];return o(n?n:e)},l,l.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s0&&t-1 in e)}function o(e,t,n){return de.isFunction(t)?de.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?de.grep(e,function(e){return e===t!==n}):"string"!=typeof t?de.grep(e,function(e){return se.call(t,e)>-1!==n}):je.test(t)?de.filter(t,e,n):(t=de.filter(t,e),de.grep(e,function(e){return se.call(t,e)>-1!==n&&1===e.nodeType}))}function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function s(e){var t={};return de.each(e.match(qe)||[],function(e,n){t[n]=!0}),t}function a(e){return e}function u(e){throw e}function c(e,t,n){var r;try{e&&de.isFunction(r=e.promise)?r.call(e).done(t).fail(n):e&&de.isFunction(r=e.then)?r.call(e,t,n):t.call(void 0,e)}catch(e){n.call(void 0,e)}}function l(){te.removeEventListener("DOMContentLoaded",l),e.removeEventListener("load",l),de.ready()}function f(){this.expando=de.expando+f.uid++}function p(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Ie.test(e)?JSON.parse(e):e)}function h(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Pe,"-$&").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n=p(n)}catch(e){}Re.set(e,t,n)}else n=void 0;return n}function d(e,t,n,r){var o,i=1,s=20,a=r?function(){return r.cur()}:function(){return de.css(e,t,"")},u=a(),c=n&&n[3]||(de.cssNumber[t]?"":"px"),l=(de.cssNumber[t]||"px"!==c&&+u)&&$e.exec(de.css(e,t));if(l&&l[3]!==c){c=c||l[3],n=n||[],l=+u||1;do i=i||".5",l/=i,de.style(e,t,l+c);while(i!==(i=a()/u)&&1!==i&&--s)}return n&&(l=+l||+u||0,o=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=o)),o}function g(e){var t,n=e.ownerDocument,r=e.nodeName,o=Ue[r];return o?o:(t=n.body.appendChild(n.createElement(r)),o=de.css(t,"display"),t.parentNode.removeChild(t),"none"===o&&(o="block"),Ue[r]=o,o)}function m(e,t){for(var n,r,o=[],i=0,s=e.length;i-1)o&&o.push(i);else if(c=de.contains(i.ownerDocument,i),s=v(f.appendChild(i),"script"),c&&y(s),n)for(l=0;i=s[l++];)Ve.test(i.type||"")&&n.push(i);return f}function b(){return!0}function w(){return!1}function T(){try{return te.activeElement}catch(e){}}function C(e,t,n,r,o,i){var s,a;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(a in t)C(e,a,n,r,t[a],i);return e}if(null==r&&null==o?(o=n,r=n=void 0):null==o&&("string"==typeof n?(o=r,r=void 0):(o=r,r=n,n=void 0)),o===!1)o=w;else if(!o)return e;return 1===i&&(s=o,o=function(e){return de().off(e),s.apply(this,arguments)},o.guid=s.guid||(s.guid=de.guid++)),e.each(function(){de.event.add(this,t,o,r,n)})}function j(e,t){return de.nodeName(e,"table")&&de.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e:e}function k(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function E(e){var t=rt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function S(e,t){var n,r,o,i,s,a,u,c;if(1===t.nodeType){if(Fe.hasData(e)&&(i=Fe.access(e),s=Fe.set(t,i),c=i.events)){delete s.handle,s.events={};for(o in c)for(n=0,r=c[o].length;n1&&"string"==typeof d&&!pe.checkClone&&nt.test(d))return e.each(function(n){var i=e.eq(n);g&&(t[0]=d.call(this,n,i.html())),A(i,t,r,o)});if(p&&(i=x(t,e[0].ownerDocument,!1,e,o),s=i.firstChild,1===i.childNodes.length&&(i=s),s||o)){for(a=de.map(v(i,"script"),k),u=a.length;f=0&&nC.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[$]=!0,e}function o(e){var t=L.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),r=n.length;r--;)C.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return function(t){return"form"in t?t.parentNode&&t.disabled===!1?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&je(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var o,i=e([],n.length,t),s=i.length;s--;)n[o=i[s]]&&(n[o]=!(r[o]=n[o]))})})}function f(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function h(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var o=e.length;o--;)if(!e[o](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var o=0,i=n.length;o-1&&(r[c]=!(s[c]=f))}}else x=v(x===s?x.splice(d,x.length):x),i?i(null,s,x,u):K.apply(s,x)})}function x(e){for(var t,n,r,o=e.length,i=C.relative[e[0].type],s=i||C.relative[" "],a=i?1:0,u=d(function(e){return e===t},s,!0),c=d(function(e){return ee(t,e)>-1},s,!0),l=[function(e,n,r){var o=!i&&(r||n!==A)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,o}];a1&&g(l),a>1&&h(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(ae,"$1"),n,a0,i=e.length>0,s=function(r,s,a,u,c){var l,f,p,h=0,d="0",g=r&&[],m=[],y=A,x=r||i&&C.find.TAG("*",c),b=B+=null==y?1:Math.random()||.1,w=x.length;for(c&&(A=s===L||s||c);d!==w&&null!=(l=x[d]);d++){if(i&&l){for(f=0,s||l.ownerDocument===L||(O(l),a=!F);p=e[f++];)if(p(l,s||L,a)){u.push(l);break}c&&(B=b)}o&&((l=!p&&l)&&h--,r&&g.push(l))}if(h+=d,o&&d!==h){for(f=0;p=n[f++];)p(g,m,s,a);if(r){if(h>0)for(;d--;)g[d]||m[d]||(m[d]=Q.call(u));m=v(m)}K.apply(u,m),c&&!r&&m.length>0&&h+n.length>1&&t.uniqueSort(u)}return c&&(B=b,A=y),g};return o?r(s):s}var w,T,C,j,k,E,S,N,A,q,D,O,L,H,F,R,I,P,M,$="sizzle"+1*new Date,W=e.document,B=0,_=0,U=n(),z=n(),X=n(),V=function(e,t){return e===t&&(D=!0),0},G={}.hasOwnProperty,Y=[],Q=Y.pop,J=Y.push,K=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;n+~]|"+ne+")"+ne+"*"),le=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(ie),pe=new RegExp("^"+re+"$"),he={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ie),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},de=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),be=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Te=function(e,t){return t?"\0"===e?"๏ฟฝ":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},Ce=function(){O()},je=d(function(e){return e.disabled===!0&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{K.apply(Y=Z.call(W.childNodes),W.childNodes),Y[W.childNodes.length].nodeType}catch(e){K={apply:Y.length?function(e,t){J.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}T=t.support={},k=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},O=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:W;return r!==L&&9===r.nodeType&&r.documentElement?(L=r,H=L.documentElement,F=!k(L),W!==L&&(n=L.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),T.attributes=o(function(e){return e.className="i",!e.getAttribute("className")}),T.getElementsByTagName=o(function(e){return e.appendChild(L.createComment("")),!e.getElementsByTagName("*").length}),T.getElementsByClassName=me.test(L.getElementsByClassName),T.getById=o(function(e){return H.appendChild(e).id=$,!L.getElementsByName||!L.getElementsByName($).length}),T.getById?(C.filter.ID=function(e){var t=e.replace(xe,be);return function(e){return e.getAttribute("id")===t}},C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&F){var n=t.getElementById(e);return n?[n]:[]}}):(C.filter.ID=function(e){var t=e.replace(xe,be);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},C.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&F){var n,r,o,i=t.getElementById(e);if(i){if(n=i.getAttributeNode("id"),n&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if(n=i.getAttributeNode("id"),n&&n.value===e)return[i]}return[]}}),C.find.TAG=T.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):T.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},C.find.CLASS=T.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&F)return t.getElementsByClassName(e)},I=[],R=[],(T.qsa=me.test(L.querySelectorAll))&&(o(function(e){H.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&R.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||R.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+$+"-]").length||R.push("~="),e.querySelectorAll(":checked").length||R.push(":checked"),e.querySelectorAll("a#"+$+"+*").length||R.push(".#.+[+~]")}),o(function(e){e.innerHTML="";var t=L.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&R.push("name"+ne+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&R.push(":enabled",":disabled"),H.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&R.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),R.push(",.*:")})),(T.matchesSelector=me.test(P=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&o(function(e){T.disconnectedMatch=P.call(e,"*"),P.call(e,"[s!='']:x"),I.push("!=",ie)}),R=R.length&&new RegExp(R.join("|")),I=I.length&&new RegExp(I.join("|")),t=me.test(H.compareDocumentPosition),M=t||me.test(H.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},V=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!T.sortDetached&&t.compareDocumentPosition(e)===n?e===L||e.ownerDocument===W&&M(W,e)?-1:t===L||t.ownerDocument===W&&M(W,t)?1:q?ee(q,e)-ee(q,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===L?-1:t===L?1:o?-1:i?1:q?ee(q,e)-ee(q,t):0;if(o===i)return s(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?s(a[r],u[r]):a[r]===W?-1:u[r]===W?1:0},L):L},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==L&&O(e),n=n.replace(le,"='$1']"),T.matchesSelector&&F&&!X[n+" "]&&(!I||!I.test(n))&&(!R||!R.test(n)))try{var r=P.call(e,n);if(r||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return t(n,L,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==L&&O(e),M(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==L&&O(e);var n=C.attrHandle[t.toLowerCase()],r=n&&G.call(C.attrHandle,t.toLowerCase())?n(e,t,!F):void 0;return void 0!==r?r:T.attributes||!F?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.escape=function(e){return(e+"").replace(we,Te)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,o=0;if(D=!T.detectDuplicates,q=!T.sortStable&&e.slice(0),e.sort(V),D){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return q=null,e},j=t.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=j(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=j(t);return n},C=t.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,be),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,be),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=E(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,be).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(o){var i=t.attr(o,e);return null==i?"!="===n:!n||(i+="","="===n?i===r:"!="===n?i!==r:"^="===n?r&&0===i.indexOf(r):"*="===n?r&&i.indexOf(r)>-1:"$="===n?r&&i.slice(-r.length)===r:"~="===n?(" "+i.replace(se," ")+" ").indexOf(r)>-1:"|="===n&&(i===r||i.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,o){var i="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===o?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,p,h,d,g=i!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a,x=!1;if(m){if(i){for(;g;){for(p=t;p=p[g];)if(a?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&y){for(p=m,f=p[$]||(p[$]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),c=l[e]||[],h=c[0]===B&&c[1],x=h&&c[2],p=h&&m.childNodes[h];p=++h&&p&&p[g]||(x=h=0)||d.pop();)if(1===p.nodeType&&++x&&p===t){l[e]=[B,h,x];break}}else if(y&&(p=t,f=p[$]||(p[$]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),c=l[e]||[],h=c[0]===B&&c[1],x=h),x===!1)for(;(p=++h&&p&&p[g]||(x=h=0)||d.pop())&&((a?p.nodeName.toLowerCase()!==v:1!==p.nodeType)||!++x||(y&&(f=p[$]||(p[$]={}),l=f[p.uniqueID]||(f[p.uniqueID]={}),l[e]=[B,x]),p!==t)););return x-=o,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var o,i=C.pseudos[e]||C.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[$]?i(n):i.length>1?(o=[e,e,"",n],C.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,o=i(e,n),s=o.length;s--;)r=ee(e,o[s]),e[r]=!(t[r]=o[s])}):function(e){return i(e,0,o)}):i}},pseudos:{not:r(function(e){var t=[],n=[],o=S(e.replace(ae,"$1"));return o[$]?r(function(e,t,n,r){for(var i,s=o(e,null,r,[]),a=e.length;a--;)(i=s[a])&&(e[a]=!(t[a]=i))}):function(e,r,i){return t[0]=e,o(t,null,i,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){ +return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(xe,be),function(t){return(t.textContent||t.innerText||j(t)).indexOf(e)>-1}}),lang:r(function(e){return pe.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,be).toLowerCase(),function(t){var n;do if(n=F?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===H},focus:function(e){return e===L.activeElement&&(!L.hasFocus||L.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:c(!1),disabled:c(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return de.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(s=i[0]).type&&9===t.nodeType&&F&&C.relative[i[1].type]){if(t=(C.find.ID(s.matches[0].replace(xe,be),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=he.needsContext.test(e)?0:i.length;o--&&(s=i[o],!C.relative[a=s.type]);)if((u=C.find[a])&&(r=u(s.matches[0].replace(xe,be),ye.test(i[0].type)&&f(t.parentNode)||t))){if(i.splice(o,1),e=r.length&&h(i),!e)return K.apply(n,r),n;break}}return(c||S(e,l))(r,t,!F,n,!t||ye.test(e)&&f(t.parentNode)||t),n},T.sortStable=$.split("").sort(V).join("")===$,T.detectDuplicates=!!D,O(),T.sortDetached=o(function(e){return 1&e.compareDocumentPosition(L.createElement("fieldset"))}),o(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||i("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),T.attributes&&o(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||i("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),o(function(e){return null==e.getAttribute("disabled")})||i(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);de.find=xe,de.expr=xe.selectors,de.expr[":"]=de.expr.pseudos,de.uniqueSort=de.unique=xe.uniqueSort,de.text=xe.getText,de.isXMLDoc=xe.isXML,de.contains=xe.contains,de.escapeSelector=xe.escape;var be=function(e,t,n){for(var r=[],o=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&de(e).is(n))break;r.push(e)}return r},we=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},Te=de.expr.match.needsContext,Ce=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,je=/^.[^:#\[\.,]*$/;de.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?de.find.matchesSelector(r,e)?[r]:[]:de.find.matches(e,de.grep(t,function(e){return 1===e.nodeType}))},de.fn.extend({find:function(e){var t,n,r=this.length,o=this;if("string"!=typeof e)return this.pushStack(de(e).filter(function(){for(t=0;t1?de.uniqueSort(n):n},filter:function(e){return this.pushStack(o(this,e||[],!1))},not:function(e){return this.pushStack(o(this,e||[],!0))},is:function(e){return!!o(this,"string"==typeof e&&Te.test(e)?de(e):e||[],!1).length}});var ke,Ee=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Se=de.fn.init=function(e,t,n){var r,o;if(!e)return this;if(n=n||ke,"string"==typeof e){if(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Ee.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof de?t[0]:t,de.merge(this,de.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:te,!0)),Ce.test(r[1])&&de.isPlainObject(t))for(r in t)de.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return o=te.getElementById(r[2]),o&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):de.isFunction(e)?void 0!==n.ready?n.ready(e):e(de):de.makeArray(e,this)};Se.prototype=de.fn,ke=de(te);var Ne=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};de.fn.extend({has:function(e){var t=de(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&de.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?de.uniqueSort(i):i)},index:function(e){return e?"string"==typeof e?se.call(de(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(de.uniqueSort(de.merge(this.get(),de(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),de.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return be(e,"parentNode")},parentsUntil:function(e,t,n){return be(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return be(e,"nextSibling")},prevAll:function(e){return be(e,"previousSibling")},nextUntil:function(e,t,n){return be(e,"nextSibling",n)},prevUntil:function(e,t,n){return be(e,"previousSibling",n)},siblings:function(e){return we((e.parentNode||{}).firstChild,e)},children:function(e){return we(e.firstChild)},contents:function(e){return e.contentDocument||de.merge([],e.childNodes)}},function(e,t){de.fn[e]=function(n,r){var o=de.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(o=de.filter(r,o)),this.length>1&&(Ae[e]||de.uniqueSort(o),Ne.test(e)&&o.reverse()),this.pushStack(o)}});var qe=/[^\x20\t\r\n\f]+/g;de.Callbacks=function(e){e="string"==typeof e?s(e):de.extend({},e);var t,n,r,o,i=[],a=[],u=-1,c=function(){for(o=e.once,r=t=!0;a.length;u=-1)for(n=a.shift();++u-1;)i.splice(n,1),n<=u&&u--}),this},has:function(e){return e?de.inArray(e,i)>-1:i.length>0},empty:function(){return i&&(i=[]),this},disable:function(){return o=a=[],i=n="",this},disabled:function(){return!i},lock:function(){return o=a=[],n||t||(i=n=""),this},locked:function(){return!!o},fireWith:function(e,n){return o||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||c()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},de.extend({Deferred:function(t){var n=[["notify","progress",de.Callbacks("memory"),de.Callbacks("memory"),2],["resolve","done",de.Callbacks("once memory"),de.Callbacks("once memory"),0,"resolved"],["reject","fail",de.Callbacks("once memory"),de.Callbacks("once memory"),1,"rejected"]],r="pending",o={state:function(){return r},always:function(){return i.done(arguments).fail(arguments),this},catch:function(e){return o.then(null,e)},pipe:function(){var e=arguments;return de.Deferred(function(t){de.each(n,function(n,r){var o=de.isFunction(e[r[4]])&&e[r[4]];i[r[1]](function(){var e=o&&o.apply(this,arguments);e&&de.isFunction(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,o?[e]:arguments)})}),e=null}).promise()},then:function(t,r,o){function i(t,n,r,o){return function(){var c=this,l=arguments,f=function(){var e,f;if(!(t=s&&(r!==u&&(c=void 0,l=[e]),n.rejectWith(c,l))}};t?p():(de.Deferred.getStackHook&&(p.stackTrace=de.Deferred.getStackHook()),e.setTimeout(p))}}var s=0;return de.Deferred(function(e){n[0][3].add(i(0,e,de.isFunction(o)?o:a,e.notifyWith)),n[1][3].add(i(0,e,de.isFunction(t)?t:a)),n[2][3].add(i(0,e,de.isFunction(r)?r:u))}).promise()},promise:function(e){return null!=e?de.extend(e,o):o}},i={};return de.each(n,function(e,t){var s=t[2],a=t[5];o[t[1]]=s.add,a&&s.add(function(){r=a},n[3-e][2].disable,n[0][2].lock),s.add(t[3].fire),i[t[0]]=function(){return i[t[0]+"With"](this===i?void 0:this,arguments),this},i[t[0]+"With"]=s.fireWith}),o.promise(i),t&&t.call(i,i),i},when:function(e){var t=arguments.length,n=t,r=Array(n),o=re.call(arguments),i=de.Deferred(),s=function(e){return function(n){r[e]=this,o[e]=arguments.length>1?re.call(arguments):n,--t||i.resolveWith(r,o)}};if(t<=1&&(c(e,i.done(s(n)).resolve,i.reject),"pending"===i.state()||de.isFunction(o[n]&&o[n].then)))return i.then();for(;n--;)c(o[n],s(n),i.reject);return i.promise()}});var De=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;de.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&De.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},de.readyException=function(t){e.setTimeout(function(){throw t})};var Oe=de.Deferred();de.fn.ready=function(e){return Oe.then(e).catch(function(e){de.readyException(e)}),this},de.extend({isReady:!1,readyWait:1,holdReady:function(e){e?de.readyWait++:de.ready(!0)},ready:function(e){(e===!0?--de.readyWait:de.isReady)||(de.isReady=!0,e!==!0&&--de.readyWait>0||Oe.resolveWith(te,[de]))}}),de.ready.then=Oe.then,"complete"===te.readyState||"loading"!==te.readyState&&!te.documentElement.doScroll?e.setTimeout(de.ready):(te.addEventListener("DOMContentLoaded",l),e.addEventListener("load",l));var Le=function(e,t,n,r,o,i,s){var a=0,u=e.length,c=null==n;if("object"===de.type(n)){o=!0;for(a in n)Le(e,t,a,n[a],!0,i,s)}else if(void 0!==r&&(o=!0,de.isFunction(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(de(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each(function(){Re.remove(this,e)})}}),de.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Fe.get(e,t),n&&(!r||de.isArray(n)?r=Fe.access(e,t,de.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=de.queue(e,t),r=n.length,o=n.shift(),i=de._queueHooks(e,t),s=function(){de.dequeue(e,t)};"inprogress"===o&&(o=n.shift(),r--),o&&("fx"===t&&n.unshift("inprogress"),delete i.stop,o.call(e,s,i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Fe.get(e,n)||Fe.access(e,n,{empty:de.Callbacks("once memory").add(function(){Fe.remove(e,[t+"queue",n])})})}}),de.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,Ve=/^$|\/(?:java|ecma)script/i,Ge={option:[1,""],thead:[1,"","
                                                                                                                            "],col:[2,"","
                                                                                                                            "],tr:[2,"","
                                                                                                                            "],td:[3,"","
                                                                                                                            "],_default:[0,"",""]};Ge.optgroup=Ge.option,Ge.tbody=Ge.tfoot=Ge.colgroup=Ge.caption=Ge.thead,Ge.th=Ge.td;var Ye=/<|&#?\w+;/;!function(){var e=te.createDocumentFragment(),t=e.appendChild(te.createElement("div")),n=te.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),pe.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",pe.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Qe=te.documentElement,Je=/^key/,Ke=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ze=/^([^.]*)(?:\.(.+)|)/;de.event={global:{},add:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.get(e);if(m)for(n.handler&&(i=n,n=i.handler,o=i.selector),o&&de.find.matchesSelector(Qe,o),n.guid||(n.guid=de.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return"undefined"!=typeof de&&de.event.triggered!==t.type?de.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(qe)||[""],c=t.length;c--;)a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h&&(f=de.event.special[h]||{},h=(o?f.delegateType:f.bindType)||h,f=de.event.special[h]||{},l=de.extend({type:h,origType:g,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&de.expr.match.needsContext.test(o),namespace:d.join(".")},i),(p=u[h])||(p=u[h]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,d,s)!==!1||e.addEventListener&&e.addEventListener(h,s)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,l):p.push(l),de.event.global[h]=!0)},remove:function(e,t,n,r,o){var i,s,a,u,c,l,f,p,h,d,g,m=Fe.hasData(e)&&Fe.get(e);if(m&&(u=m.events)){for(t=(t||"").match(qe)||[""],c=t.length;c--;)if(a=Ze.exec(t[c])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){for(f=de.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,p=u[h]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=i=p.length;i--;)l=p[i],!o&&g!==l.origType||n&&n.guid!==l.guid||a&&!a.test(l.namespace)||r&&r!==l.selector&&("**"!==r||!l.selector)||(p.splice(i,1),l.selector&&p.delegateCount--,f.remove&&f.remove.call(e,l));s&&!p.length&&(f.teardown&&f.teardown.call(e,d,m.handle)!==!1||de.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)de.event.remove(e,h+t[c],n,r,!0);de.isEmptyObject(u)&&Fe.remove(e,"handle events")}},dispatch:function(e){var t,n,r,o,i,s,a=de.event.fix(e),u=new Array(arguments.length),c=(Fe.get(this,"events")||{})[a.type]||[],l=de.event.special[a.type]||{};for(u[0]=a,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||c.disabled!==!0)){for(i=[],s={},n=0;n-1:de.find(o,this,null,[c]).length),s[o]&&i.push(r);i.length&&a.push({elem:c,handlers:i})}return c=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,tt=/\s*$/g;de.extend({htmlPrefilter:function(e){return e.replace(et,"<$1>")},clone:function(e,t,n){var r,o,i,s,a=e.cloneNode(!0),u=de.contains(e.ownerDocument,e);if(!(pe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||de.isXMLDoc(e)))for(s=v(a),i=v(e),r=0,o=i.length;r0&&y(s,!u&&v(e,"script")),a},cleanData:function(e){for(var t,n,r,o=de.event.special,i=0;void 0!==(n=e[i]);i++)if(He(n)){if(t=n[Fe.expando]){if(t.events)for(r in t.events)o[r]?de.event.remove(n,r):de.removeEvent(n,r,t.handle);n[Fe.expando]=void 0}n[Re.expando]&&(n[Re.expando]=void 0)}}}),de.fn.extend({detach:function(e){return q(this,e,!0)},remove:function(e){return q(this,e)},text:function(e){return Le(this,function(e){return void 0===e?de.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.appendChild(e)}})},prepend:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=j(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(de.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return de.clone(this,e,t)})},html:function(e){return Le(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!tt.test(e)&&!Ge[(Xe.exec(e)||["",""])[1].toLowerCase()]){e=de.htmlPrefilter(e);try{for(;n1)}}),de.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,o,i){this.elem=e,this.prop=n,this.easing=o||de.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(de.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.options.duration?this.pos=t=de.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=de.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){de.fx.step[e.prop]?de.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[de.cssProps[e.prop]]&&!de.cssHooks[e.prop]?e.elem[e.prop]=e.now:de.style(e.elem,e.prop,e.now+e.unit)}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},de.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},de.fx=I.prototype.init,de.fx.step={};var ht,dt,gt=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;de.Animation=de.extend(U,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,$e.exec(t),n),n}]},tweener:function(e,t){de.isFunction(e)?(t=e,e=["*"]):e=e.match(qe);for(var n,r=0,o=e.length;r1)},removeAttr:function(e){return this.each(function(){de.removeAttr(this,e)})}}),de.extend({attr:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return"undefined"==typeof e.getAttribute?de.prop(e,t,n):(1===i&&de.isXMLDoc(e)||(o=de.attrHooks[t.toLowerCase()]||(de.expr.match.bool.test(t)?vt:void 0)),void 0!==n?null===n?void de.removeAttr(e,t):o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:(e.setAttribute(t,n+""),n):o&&"get"in o&&null!==(r=o.get(e,t))?r:(r=de.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!pe.radioValue&&"radio"===t&&de.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,o=t&&t.match(qe);if(o&&1===e.nodeType)for(;n=o[r++];)e.removeAttribute(n)}}),vt={set:function(e,t,n){return t===!1?de.removeAttr(e,n):e.setAttribute(n,n),n}},de.each(de.expr.match.bool.source.match(/\w+/g),function(e,t){var n=yt[t]||de.find.attr;yt[t]=function(e,t,r){var o,i,s=t.toLowerCase();return r||(i=yt[s],yt[s]=o,o=null!=n(e,t,r)?s:null,yt[s]=i),o}});var xt=/^(?:input|select|textarea|button)$/i,bt=/^(?:a|area)$/i;de.fn.extend({prop:function(e,t){return Le(this,de.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[de.propFix[e]||e]})}}),de.extend({prop:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&de.isXMLDoc(e)||(t=de.propFix[t]||t,o=de.propHooks[t]),void 0!==n?o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:e[t]=n:o&&"get"in o&&null!==(r=o.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=de.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||bt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),pe.optSelected||(de.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),de.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){de.propFix[this.toLowerCase()]=this}),de.fn.extend({addClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).addClass(e.call(this,t,X(this)))});if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,r,o,i,s,a,u=0;if(de.isFunction(e))return this.each(function(t){de(this).removeClass(e.call(this,t,X(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(qe)||[];n=this[u++];)if(o=X(n),r=1===n.nodeType&&" "+z(o)+" "){for(s=0;i=t[s++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");a=z(r),o!==a&&n.setAttribute("class",a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):de.isFunction(e)?this.each(function(n){de(this).toggleClass(e.call(this,n,X(this),t),t)}):this.each(function(){var t,r,o,i;if("string"===n)for(r=0,o=de(this),i=e.match(qe)||[];t=i[r++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||(t=X(this),t&&Fe.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||e===!1?"":Fe.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(X(n))+" ").indexOf(t)>-1)return!0;return!1}});var wt=/\r/g;de.fn.extend({val:function(e){var t,n,r,o=this[0];{if(arguments.length)return r=de.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=r?e.call(this,n,de(this).val()):e,null==o?o="":"number"==typeof o?o+="":de.isArray(o)&&(o=de.map(o,function(e){return null==e?"":e+""})),t=de.valHooks[this.type]||de.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))});if(o)return t=de.valHooks[o.type]||de.valHooks[o.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(wt,""):null==n?"":n)}}}),de.extend({valHooks:{option:{get:function(e){var t=de.find.attr(e,"value");return null!=t?t:z(de.text(e))}},select:{get:function(e){var t,n,r,o=e.options,i=e.selectedIndex,s="select-one"===e.type,a=s?null:[],u=s?i+1:o.length;for(r=i<0?u:s?i:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),de.each(["radio","checkbox"],function(){de.valHooks[this]={set:function(e,t){if(de.isArray(t))return e.checked=de.inArray(de(e).val(),t)>-1}},pe.checkOn||(de.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Tt=/^(?:focusinfocus|focusoutblur)$/;de.extend(de.event,{trigger:function(t,n,r,o){var i,s,a,u,c,l,f,p=[r||te],h=ce.call(t,"type")?t.type:t,d=ce.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||te,3!==r.nodeType&&8!==r.nodeType&&!Tt.test(h+de.event.triggered)&&(h.indexOf(".")>-1&&(d=h.split("."),h=d.shift(),d.sort()),c=h.indexOf(":")<0&&"on"+h,t=t[de.expando]?t:new de.Event(h,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=d.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:de.makeArray(n,[t]),f=de.event.special[h]||{},o||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!o&&!f.noBubble&&!de.isWindow(r)){for(u=f.delegateType||h,Tt.test(u+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(r.ownerDocument||te)&&p.push(a.defaultView||a.parentWindow||e)}for(i=0;(s=p[i++])&&!t.isPropagationStopped();)t.type=i>1?u:f.bindType||h,l=(Fe.get(s,"events")||{})[t.type]&&Fe.get(s,"handle"),l&&l.apply(s,n),l=c&&s[c],l&&l.apply&&He(s)&&(t.result=l.apply(s,n),t.result===!1&&t.preventDefault());return t.type=h,o||t.isDefaultPrevented()||f._default&&f._default.apply(p.pop(),n)!==!1||!He(r)||c&&de.isFunction(r[h])&&!de.isWindow(r)&&(a=r[c],a&&(r[c]=null),de.event.triggered=h,r[h](),de.event.triggered=void 0,a&&(r[c]=a)),t.result}},simulate:function(e,t,n){var r=de.extend(new de.Event,n,{type:e,isSimulated:!0});de.event.trigger(r,null,t)}}),de.fn.extend({trigger:function(e,t){return this.each(function(){de.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return de.event.trigger(e,t,n,!0)}}),de.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){de.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),de.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),pe.focusin="onfocusin"in e,pe.focusin||de.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){de.event.simulate(t,e.target,de.event.fix(e))};de.event.special[t]={setup:function(){var r=this.ownerDocument||this,o=Fe.access(r,t);o||r.addEventListener(e,n,!0),Fe.access(r,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this,o=Fe.access(r,t)-1;o?Fe.access(r,t,o):(r.removeEventListener(e,n,!0),Fe.remove(r,t))}}});var Ct=e.location,jt=de.now(),kt=/\?/;de.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||de.error("Invalid XML: "+t),n};var Et=/\[\]$/,St=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;de.param=function(e,t){var n,r=[],o=function(e,t){var n=de.isFunction(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(de.isArray(e)||e.jquery&&!de.isPlainObject(e))de.each(e,function(){o(this.name,this.value)});else for(n in e)V(n,e[n],t,o);return r.join("&")},de.fn.extend({serialize:function(){return de.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=de.prop(this,"elements");return e?de.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!de(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!ze.test(e))}).map(function(e,t){var n=de(this).val();return null==n?null:de.isArray(n)?de.map(n,function(e){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}});var qt=/%20/g,Dt=/#.*$/,Ot=/([?&])_=[^&]*/,Lt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ht=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ft=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Pt={},Mt="*/".concat("*"),$t=te.createElement("a");$t.href=Ct.href,de.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Ht.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Mt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":de.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Q(Q(e,de.ajaxSettings),t):Q(de.ajaxSettings,e)},ajaxPrefilter:G(It),ajaxTransport:G(Pt),ajax:function(t,n){function r(t,n,r,a){var c,p,h,b,w,T=n;l||(l=!0,u&&e.clearTimeout(u),o=void 0,s=a||"",C.readyState=t>0?4:0,c=t>=200&&t<300||304===t,r&&(b=J(d,C,r)),b=K(d,b,C,c),c?(d.ifModified&&(w=C.getResponseHeader("Last-Modified"),w&&(de.lastModified[i]=w),w=C.getResponseHeader("etag"),w&&(de.etag[i]=w)),204===t||"HEAD"===d.type?T="nocontent":304===t?T="notmodified":(T=b.state,p=b.data,h=b.error,c=!h)):(h=T,!t&&T||(T="error",t<0&&(t=0))),C.status=t,C.statusText=(n||T)+"",c?v.resolveWith(g,[p,T,C]):v.rejectWith(g,[C,T,h]),C.statusCode(x),x=void 0,f&&m.trigger(c?"ajaxSuccess":"ajaxError",[C,d,c?p:h]),y.fireWith(g,[C,T]),f&&(m.trigger("ajaxComplete",[C,d]),--de.active||de.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var o,i,s,a,u,c,l,f,p,h,d=de.ajaxSetup({},n),g=d.context||d,m=d.context&&(g.nodeType||g.jquery)?de(g):de.event,v=de.Deferred(),y=de.Callbacks("once memory"),x=d.statusCode||{},b={},w={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=Lt.exec(s);)a[t[1].toLowerCase()]=t[2];t=a[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?s:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)C.always(e[C.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||T;return o&&o.abort(t),r(0,t),this}};if(v.promise(C),d.url=((t||d.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(qe)||[""],null==d.crossDomain){c=te.createElement("a");try{c.href=d.url,c.href=c.href,d.crossDomain=$t.protocol+"//"+$t.host!=c.protocol+"//"+c.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=de.param(d.data,d.traditional)),Y(It,d,n,C),l)return C;f=de.event&&d.global,f&&0===de.active++&&de.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Ft.test(d.type),i=d.url.replace(Dt,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(qt,"+")):(h=d.url.slice(i.length),d.data&&(i+=(kt.test(i)?"&":"?")+d.data,delete d.data),d.cache===!1&&(i=i.replace(Ot,"$1"),h=(kt.test(i)?"&":"?")+"_="+jt++ +h),d.url=i+h),d.ifModified&&(de.lastModified[i]&&C.setRequestHeader("If-Modified-Since",de.lastModified[i]),de.etag[i]&&C.setRequestHeader("If-None-Match",de.etag[i])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Mt+"; q=0.01":""):d.accepts["*"]);for(p in d.headers)C.setRequestHeader(p,d.headers[p]);if(d.beforeSend&&(d.beforeSend.call(g,C,d)===!1||l))return C.abort();if(T="abort",y.add(d.complete),C.done(d.success),C.fail(d.error),o=Y(Pt,d,n,C)){if(C.readyState=1,f&&m.trigger("ajaxSend",[C,d]),l)return C;d.async&&d.timeout>0&&(u=e.setTimeout(function(){C.abort("timeout")},d.timeout));try{l=!1,o.send(b,r)}catch(e){if(l)throw e;r(-1,e)}}else r(-1,"No Transport");return C},getJSON:function(e,t,n){return de.get(e,t,n,"json")},getScript:function(e,t){return de.get(e,void 0,t,"script")}}),de.each(["get","post"],function(e,t){de[t]=function(e,n,r,o){return de.isFunction(n)&&(o=o||r,r=n,n=void 0),de.ajax(de.extend({url:e,type:t,dataType:o,data:n,success:r},de.isPlainObject(e)&&e))}}),de._evalUrl=function(e){return de.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},de.fn.extend({wrapAll:function(e){var t;return this[0]&&(de.isFunction(e)&&(e=e.call(this[0])),t=de(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return de.isFunction(e)?this.each(function(t){de(this).wrapInner(e.call(this,t))}):this.each(function(){var t=de(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=de.isFunction(e);return this.each(function(n){de(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){de(this).replaceWith(this.childNodes)}),this}}),de.expr.pseudos.hidden=function(e){return!de.expr.pseudos.visible(e)},de.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},de.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Wt={0:200,1223:204},Bt=de.ajaxSettings.xhr();pe.cors=!!Bt&&"withCredentials"in Bt,pe.ajax=Bt=!!Bt,de.ajaxTransport(function(t){var n,r;if(pe.cors||Bt&&!t.crossDomain)return{send:function(o,i){var s,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest");for(s in o)a.setRequestHeader(s,o[s]);n=function(e){return function(){n&&(n=r=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?i(0,"error"):i(a.status,a.statusText):i(Wt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),r=a.onerror=n("error"),void 0!==a.onabort?a.onabort=r:a.onreadystatechange=function(){4===a.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{a.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),de.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),de.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return de.globalEval(e),e}}}),de.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),de.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,o){t=de(" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/leafnodes/index.html b/docs/leafnodes/index.html new file mode 100644 index 0000000..e11ca5e --- /dev/null +++ b/docs/leafnodes/index.html @@ -0,0 +1,2477 @@ + + + + + + + Leaf Nodes ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

                                                                                                                            +
                                                                                                                            + + + + + + + + +
                                                                                                                            + +
                                                                                                                            + +
                                                                                                                            + + + + + + + + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            + +
                                                                                                                            + +

                                                                                                                            Leaf Nodes

                                                                                                                            +

                                                                                                                            A Leaf Node is a separate authentication domain. Leaf Nodes leverage Accounts and JWT to enable a server to connect to another and filter messages as per the leaf node's account User configuration.

                                                                                                                            +

                                                                                                                            This effectively means that the leaf node cluster's with the other server at an Account level:

                                                                                                                            +
                                                                                                                              +
                                                                                                                            • Leaf nodes clients authenticate locally (or just connect if authentication is not required)
                                                                                                                            • +
                                                                                                                            • Traffic between the leaf node and the cluster assume the restrictions of the User configuration used to create the leaf connection.
                                                                                                                                +
                                                                                                                              • Subjects that the user is allowed to publish are exported to the cluster.
                                                                                                                              • +
                                                                                                                              • Subjects the user is allowed to subscribe to, are imported into the leaf node.
                                                                                                                              • +
                                                                                                                              +
                                                                                                                            • +
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Leaf Nodes are an important component as a way to bridge traffic between local nats-servers you control and servers that are managed by a third-party. The Synadia's NATS Global Service (NGS) allows accounts to use leaf nodes, but gain accessibility to the global network to inexpensively connect geographically distributed servers or small clusters.

                                                                                                                            +
                                                                                                                            +

                                                                                                                            LeafNode Configuration Options

                                                                                                                            +

                                                                                                                            LeafNode Configuration Tutorial

                                                                                                                            +

                                                                                                                            Create a new operator called "O":

                                                                                                                            +
                                                                                                                            > nsc add operator -n O
                                                                                                                            +Generated operator key - private key stored "~/.nkeys/O/O.nk"
                                                                                                                            +Success! - added operator "O"
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Create an account called "A":

                                                                                                                            +
                                                                                                                            > nsc add account -n A
                                                                                                                            +Generated account key - private key stored "~/.nkeys/O/accounts/A/A.nk"
                                                                                                                            +Success! - added account "A"
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Create an user called "leaf":

                                                                                                                            +
                                                                                                                            > nsc add user -n leaf
                                                                                                                            +Generated user key - private key stored "~/.nkeys/O/accounts/A/users/leaf.nk"
                                                                                                                            +Generated user creds file "~/.nkeys/O/accounts/A/users/leaf.creds"
                                                                                                                            +Success! - added user "leaf" to "A"
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Let's create an second user called 'nolimit'

                                                                                                                            +
                                                                                                                            > nsc add user -n nolimit
                                                                                                                            +Generated user key - private key stored "~/.nkeys/O/accounts/A/users/nolimit.nk"
                                                                                                                            +Generated user creds file "~/.nkeys/O/accounts/A/users/nolimit.creds"
                                                                                                                            +Success! - added user "nolimit" to "A"
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Start a nats-account-server:

                                                                                                                            +
                                                                                                                            > nats-account-server -nsc ~/.nsc/nats/O
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Create the server configuration file (server.conf) with the following contents:

                                                                                                                            +
                                                                                                                            operator: /Users/synadia/.nsc/nats/O/O.jwt
                                                                                                                            +resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                            +leafnodes {
                                                                                                                            +    listen: "127.0.0.1:4000"
                                                                                                                            +}
                                                                                                                            +
                                                                                                                            +

                                                                                                                            The server configuration naturally requires an operator and resolver to deal with the JWT authentication and accounts. In addition the leafnodes configuration exposes a listen where the server will receive leaf nodes. In this case on the localhost on port 4000.

                                                                                                                            +

                                                                                                                            Start the nats-server:

                                                                                                                            +
                                                                                                                            > nats-server -c server.conf
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Create a subscriber on the server:

                                                                                                                            +
                                                                                                                            > nats-sub -creds ~/.nkeys/O/accounts/A/users/nolimit.creds ">"
                                                                                                                            +Listening on [>]
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Create the leaf server configuration (leaf.conf) with the following contents:

                                                                                                                            +
                                                                                                                            port: 4111
                                                                                                                            +leafnodes {
                                                                                                                            +    remotes = [ 
                                                                                                                            +        { url: nats-leaf://localhost:4000, 
                                                                                                                            +          credentials: /Users/synadia/.nkeys/O/accounts/A/users/leaf.creds 
                                                                                                                            +        },
                                                                                                                            +    ]
                                                                                                                            +}
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Note the leaf node configuration lists a number of remotes. The url specifies the port on the server where leaf node connections are allowed. The credentials configuration specifies the path to a user's credentials file.

                                                                                                                            +

                                                                                                                            Create a subscriber on the leaf:

                                                                                                                            +
                                                                                                                            > nats-sub -s localhost:4111 ">"
                                                                                                                            +Listening on [>]
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Publish a message on the server:

                                                                                                                            +
                                                                                                                            > nats-pub -creds ~/.nkeys/O/accounts/A/users/leaf.creds foo foo
                                                                                                                            +Published [foo] : 'foo'
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Both the server and leaf subscriber print:

                                                                                                                            +
                                                                                                                            [#1] Received on [foo]: 'foo'
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Publish a message on the leaf:

                                                                                                                            +
                                                                                                                            > nats-pub -s localhost:4111 bar bar
                                                                                                                            +Published [bar] : 'bar'
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Both the server and leaf subscribers print:

                                                                                                                            +
                                                                                                                            [#2] Received on [bar]: 'bar'
                                                                                                                            +
                                                                                                                            +

                                                                                                                            The leaf forwards all local messages to the server where members of the account are able to receive them. Messages published on the server by the account are forwarded to the leaf where subscribers are able to receive them.

                                                                                                                            +

                                                                                                                            Leaf Authorization

                                                                                                                            +

                                                                                                                            In some cases you may want to restrict what messages can be exported from the leaf node or imported from the account. For leaf servers this is simply a user account configuration, as users can have specific permissions on what subjects to publish and/or subscribe to.

                                                                                                                            +

                                                                                                                            Let's put some restrictions on the leaf user so that it can only publish to foo and subscribe to bar:

                                                                                                                            +
                                                                                                                            > nsc edit user -n leaf --allow-pub foo --allow-sub bar
                                                                                                                            +Updated user creds file "~/.nkeys/O/accounts/A/users/leaf.creds"
                                                                                                                            +Success! - edited user "leaf" in account "A"
                                                                                                                            +
                                                                                                                            +-----BEGIN NATS ACCOUNT JWT-----
                                                                                                                            +eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJVSk9RTFVSTUVFTVZXQVpVT0E2VlE1UVQ0UEdIV081WktDWlBLVFBJQVpLSldaSTJGNVpRIiwiaWF0IjoxNTU2ODM1MzU4LCJpc3MiOiJBRDU3TUZOQklLTzNBRFU2VktMRkVYQlBVQjdFWlpLU0tVUDdZTzNWVUFJTUlBWUpVNE1EM0NDUiIsIm5hbWUiOiJsZWFmIiwic3ViIjoiVUNEMlpSVUs1UE8yMk02MlNWVTZITzZJS01BVERDUlJYVVVGWDRRU1VTWFdRSDRHU1Y3RDdXVzMiLCJ0eXBlIjoidXNlciIsIm5hdHMiOnsicHViIjp7ImFsbG93IjpbImZvbyJdfSwic3ViIjp7ImFsbG93IjpbImJhciJdfX19.IeqSylTaisMQMH3Ih_0G8LLxoxe0gIClpxTm3B_ys_XwL9TtPIW-M2qdaYQZ_ZmR2glMvYK4EJ6J8RQ1UZdGAg
                                                                                                                            +------END NATS ACCOUNT JWT------
                                                                                                                            +
                                                                                                                            +> nsc describe user -n leaf
                                                                                                                            +╭───────────────────────────────────────────╮
                                                                                                                            +│                   User                    │
                                                                                                                            +├─────────────────┬─────────────────────────┤
                                                                                                                            +│ Name            │ leaf                    │
                                                                                                                            +│ User ID         │ UCD2ZRUK5PO2            │
                                                                                                                            +│ Issuer ID       │ AD57MFNBIKO3            │
                                                                                                                            +│ Issued          │ 2019-05-02 22:15:58 UTC │
                                                                                                                            +│ Expires         │                         │
                                                                                                                            +├─────────────────┼─────────────────────────┤
                                                                                                                            +│ Pub Allow       │ foo                     │
                                                                                                                            +│ Sub Allow       │ bar                     │
                                                                                                                            +├─────────────────┼─────────────────────────┤
                                                                                                                            +│ Max Messages    │ Unlimited               │
                                                                                                                            +│ Max Msg Payload │ Unlimited               │
                                                                                                                            +│ Network Src     │ Any                     │
                                                                                                                            +│ Time            │ Any                     │
                                                                                                                            +╰─────────────────┴─────────────────────────╯
                                                                                                                            +
                                                                                                                            +

                                                                                                                            As we can see on the inspection of the user, the restrictions have been applied.

                                                                                                                            +

                                                                                                                            Let's repeat the experiment. This time we'll restart the leaf server so that the new user configuration is applied:

                                                                                                                            +
                                                                                                                            > nats-server -c leaf.conf
                                                                                                                            +
                                                                                                                            +

                                                                                                                            You should see a new message on the leaf subscriber:

                                                                                                                            +
                                                                                                                            Reconnected [nats://localhost:4111]
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Let's publish a message on the leaf:

                                                                                                                            +
                                                                                                                            > nats-pub -s localhost:4111 foo foo
                                                                                                                            +Published [foo] : 'foo'
                                                                                                                            +
                                                                                                                            +

                                                                                                                            You should see a new message in all your subscriber windows:

                                                                                                                            +
                                                                                                                            [#3] Received on [foo]: 'foo'
                                                                                                                            +
                                                                                                                            +

                                                                                                                            Now publish a new message on the leaf, but this time with the subject bar:

                                                                                                                            +
                                                                                                                            > nats-pub -s localhost:4111 bar bar
                                                                                                                            +Published [bar] : 'bar'
                                                                                                                            +
                                                                                                                            +

                                                                                                                            This time only the leaf subscriber will print [#4] Received on [bar]: 'bar', the account subscriber won't print it because the leaf user doesn't have permissions to publish on 'bar'.

                                                                                                                            +

                                                                                                                            Let's try the flow of messages from the server to the leaf node:

                                                                                                                            +
                                                                                                                            > nats-pub -creds ~/.nkeys/O/accounts/A/users/leaf.creds foo foo
                                                                                                                            +Published [foo] : 'foo'
                                                                                                                            +

                                                                                                                            Only the server subscriber will receive the message as expected.

                                                                                                                            +

                                                                                                                            Repeat the publish this time with 'bar':

                                                                                                                            +
                                                                                                                            > nats-pub -creds ~/.nkeys/O/accounts/A/users/leaf.creds bar bar
                                                                                                                            +Published [bar] : 'bar'
                                                                                                                            +

                                                                                                                            Both subscribers will receive the message as expected.

                                                                                                                            +

                                                                                                                            As you can see:

                                                                                                                            +
                                                                                                                              +
                                                                                                                            • Messages to and from the leaf node to the server are limitted by the user associated with the leaf node connection.
                                                                                                                            • +
                                                                                                                            • Messages within the leaf node are as per the server's authentication and authorization configuration
                                                                                                                            • +
                                                                                                                            + + +
                                                                                                                            + +
                                                                                                                            +
                                                                                                                            +
                                                                                                                            + +

                                                                                                                            results matching ""

                                                                                                                            +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              No results matching ""

                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                              + + +
                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/leafnodes/leafnode_conf.html b/docs/leafnodes/leafnode_conf.html new file mode 100644 index 0000000..d6bee4b --- /dev/null +++ b/docs/leafnodes/leafnode_conf.html @@ -0,0 +1,2450 @@ + + + + + + + Configuration ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                              +
                                                                                                                              + + + + + + + + +
                                                                                                                              + +
                                                                                                                              + +
                                                                                                                              + + + + + + + + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              + +
                                                                                                                              + +

                                                                                                                              LeafNode Configuration Block

                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                              PropertyDescription
                                                                                                                              advertiseHostport <host>:<port> to advertise to other gateways.
                                                                                                                              authorizationAuthorization block (same as other nats-server authorization configuration).
                                                                                                                              hostInterface where the gateway will listen for incomming gateway connections.
                                                                                                                              listenCombines host and port as <host>:<port>
                                                                                                                              nameName for this cluster, all gateways belonging to the same cluster, should specify the same name.
                                                                                                                              `no_advertiseif true the leafnode shouldn't be advertised.
                                                                                                                              portPort where the gateway will listen for incomming gateway connections.
                                                                                                                              remotesList of remote entries specifying servers where leafnode client connection can be made.
                                                                                                                              tlsTLS configuration block (same as other nats-server tls configuration).
                                                                                                                              +

                                                                                                                              LeafNode Remote Entry Block

                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                              PropertyDescription
                                                                                                                              urlLeafnode URL (URL protocol should be leafnode).
                                                                                                                              accountAccount public key identifying the leafnode. Account must be defined locally.
                                                                                                                              credentialsCredential file for connecting to the leafnode server.
                                                                                                                              tlsA TLS configuration block. Gateway client will use specified TLS certificates when connecting/authenticating.
                                                                                                                              +

                                                                                                                              TLS Configuration Block

                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                              PropertyDescription
                                                                                                                              cert_fileTLS certificate file.
                                                                                                                              key_fileTLS certificate key file.
                                                                                                                              ca_fileTLS certificate authority file.
                                                                                                                              insecureSkip certificate verfication.
                                                                                                                              verifyIf true, require and verify client certificates.
                                                                                                                              verify_and_mapIf true, require and verify client certificates and use values map certificate values for authentication purposes.
                                                                                                                              cipher_suitesWhen set, only the specified TLS cipher suites will be allowed. Values must match golang version used to build the server.
                                                                                                                              curve_preferencesList of TLS cypher curves to use in order.
                                                                                                                              timeoutTLS handshake timeout in fractional seconds.
                                                                                                                              + + +
                                                                                                                              + +
                                                                                                                              +
                                                                                                                              +
                                                                                                                              + +

                                                                                                                              results matching ""

                                                                                                                              +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + +

                                                                                                                                No results matching ""

                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                + + +
                                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_admin/index.html b/docs/nats_admin/index.html new file mode 100644 index 0000000..cdaa8f9 --- /dev/null +++ b/docs/nats_admin/index.html @@ -0,0 +1,2336 @@ + + + + + + + Managing A NATS Server ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                +
                                                                                                                                + + + + + + + + +
                                                                                                                                + +
                                                                                                                                + +
                                                                                                                                + + + + + + + + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                + +
                                                                                                                                + +

                                                                                                                                Managing a NATS Server

                                                                                                                                +

                                                                                                                                Managing a NATS server is simple, typical lifecycle operations include:

                                                                                                                                + + + +
                                                                                                                                + +
                                                                                                                                +
                                                                                                                                +
                                                                                                                                + +

                                                                                                                                results matching ""

                                                                                                                                +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  No results matching ""

                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                  + + +
                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_admin/signals.html b/docs/nats_admin/signals.html new file mode 100644 index 0000000..ae96f43 --- /dev/null +++ b/docs/nats_admin/signals.html @@ -0,0 +1,2383 @@ + + + + + + + Signals ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                  +
                                                                                                                                  + + + + + + + + +
                                                                                                                                  + +
                                                                                                                                  + +
                                                                                                                                  + + + + + + + + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  + +
                                                                                                                                  + +

                                                                                                                                  Process Signaling

                                                                                                                                  +

                                                                                                                                  On Unix systems, the NATS server responds to the following signals:

                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                  SignalResult
                                                                                                                                  SIGKILLKills the process immediately
                                                                                                                                  SIGINTStops the server gracefully
                                                                                                                                  SIGUSR1Reopens the log file for log rotation
                                                                                                                                  SIGHUPReloads server configuration file
                                                                                                                                  SIGUSR2Stops the server after evicting all clients (lame duck mode)
                                                                                                                                  +

                                                                                                                                  The nats-server binary can be used to send these signals to running NATS servers using the -sl flag:

                                                                                                                                  +
                                                                                                                                  # Quit the server
                                                                                                                                  +nats-server --signal quit
                                                                                                                                  +
                                                                                                                                  +# Stop the server
                                                                                                                                  +nats-server --signal stop
                                                                                                                                  +
                                                                                                                                  +# Reopen log file for log rotation
                                                                                                                                  +nats-server --signal reopen
                                                                                                                                  +
                                                                                                                                  +# Reload server configuration
                                                                                                                                  +nats-server --signal reload
                                                                                                                                  +
                                                                                                                                  +# Lame duck mode server configuration
                                                                                                                                  +nats-server --signal ldm
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  If there are multiple nats-server processes running, or if pgrep isn't available, you must either specify a PID or the absolute path to a PID file:

                                                                                                                                  +
                                                                                                                                  nats-server --signal stop=<pid>
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  nats-server --signal stop=/path/to/pidfile
                                                                                                                                  +
                                                                                                                                  +

                                                                                                                                  See the Windows Service section for information on signaling the NATS server on Windows.

                                                                                                                                  + + +
                                                                                                                                  + +
                                                                                                                                  +
                                                                                                                                  +
                                                                                                                                  + +

                                                                                                                                  results matching ""

                                                                                                                                  +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    + +

                                                                                                                                    No results matching ""

                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    + +
                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                    + + +
                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_admin/slow_consumers.html b/docs/nats_admin/slow_consumers.html new file mode 100644 index 0000000..0d63474 --- /dev/null +++ b/docs/nats_admin/slow_consumers.html @@ -0,0 +1,2396 @@ + + + + + + + Slow Consumers ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                    +
                                                                                                                                    + + + + + + + + +
                                                                                                                                    + +
                                                                                                                                    + +
                                                                                                                                    + + + + + + + + +
                                                                                                                                    +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    + +
                                                                                                                                    + +

                                                                                                                                    Slow Consumers

                                                                                                                                    +

                                                                                                                                    To support resiliency and high availability, NATS provides built-in mechanisms to automatically prune the registered listener interest graph that is used to keep track of subscribers, including slow consumers and lazy listeners. NATS automatically handles a slow consumer. If a client is not processing messages quick enough, the NATS server cuts it off. To support scaling, NATS provides for auto-pruning of client connections. If a subscriber does not respond to ping requests from the server within the ping-pong interval, the client is cut off (disconnected). The client will need to have reconnect logic to reconnect with the server.

                                                                                                                                    +

                                                                                                                                    Slow Consumers

                                                                                                                                    +

                                                                                                                                    In core NATS, consumers that cannot keep up are handled differently from many other messaging systems: NATS favors the approach of protecting the system as a whole over accommodating a particular consumer to ensure message delivery.

                                                                                                                                    +

                                                                                                                                    What is a slow consumer?

                                                                                                                                    +

                                                                                                                                    A slow consumer is a subscriber that cannot keep up with the message flow delivered from the NATS server. This is a common case in distributed systems because it is often easier to generate data than it is to process it. When consumers cannot process data fast enough, back pressure is applied to the rest of the system. NATS has mechanisms to reduce this back pressure.

                                                                                                                                    +

                                                                                                                                    NATS identifies slow consumers in the client or the server, providing notification through registered callbacks, log messages, and statistics in the server's monitoring endpoints.

                                                                                                                                    +

                                                                                                                                    What happens to slow consumers?

                                                                                                                                    +

                                                                                                                                    When detected at the client, the application is notified and messages are dropped to allow the consumer to continue and reduce potential back pressure. When detected in the server, the server will disconnect the connection with the slow consumer to protect itself and the integrity of the messaging system.

                                                                                                                                    +

                                                                                                                                    Slow consumers identified in the client

                                                                                                                                    +

                                                                                                                                    A client can detect it is a slow consumer on a local connection and notify the application through use of the asynchronous error callback. It is better to catch a slow consumer locally in the client rather than to allow the server to detect this condition. This example demonstrates how to define and register an asynchronous error handler that will handle slow consumer errors.

                                                                                                                                    +
                                                                                                                                    func natsErrHandler(nc *nats.Conn, sub *nats.Subscription, natsErr error) {
                                                                                                                                    +    fmt.Printf("error: %v\n", natsErr)
                                                                                                                                    +    if natsErr == nats.ErrSlowConsumer {
                                                                                                                                    +        pendingMsgs, _, err := sub.Pending()
                                                                                                                                    +        if err != nil {
                                                                                                                                    +            fmt.Printf("couldn't get pending messages: %v", err)
                                                                                                                                    +            return
                                                                                                                                    +        }
                                                                                                                                    +        fmt.Printf("Falling behind with %d pending messages on subject %q.\n",
                                                                                                                                    +            pendingMsgs, sub.Subject)
                                                                                                                                    +        // Log error, notify operations...
                                                                                                                                    +    }
                                                                                                                                    +    // check for other errors
                                                                                                                                    +}
                                                                                                                                    +
                                                                                                                                    +// Set the error handler when creating a connection.
                                                                                                                                    +nc, err := nats.Connect("nats://localhost:4222",
                                                                                                                                    +  nats.ErrorHandler(natsErrHandler))
                                                                                                                                    +
                                                                                                                                    +

                                                                                                                                    With this example code and default settings, a slow consumer error would generate output something like this:

                                                                                                                                    +
                                                                                                                                    error: nats: slow consumer, messages dropped
                                                                                                                                    +Falling behind with 65536 pending messages on subject "foo".
                                                                                                                                    +
                                                                                                                                    +

                                                                                                                                    Note that if you are using a synchronous subscriber, Subscription.NextMsg(timeout time.Duration) will also return an error indicating there was a slow consumer and messages have been dropped.

                                                                                                                                    +

                                                                                                                                    Slow consumers identified by the server

                                                                                                                                    +

                                                                                                                                    When a client does not process messages fast enough, the server will buffer messages in the outbound connection to the client. When this happens and the server cannot write data fast enough to the client, in order to protect itself, it will designate a subscriber as a "slow consumer" and may drop the associated connection.

                                                                                                                                    +

                                                                                                                                    When the server initiates a slow consumer error, you'll see the following in the server output:

                                                                                                                                    +
                                                                                                                                    [54083] 2017/09/28 14:45:18.001357 [INF] ::1:63283 - cid:7 - Slow Consumer Detected
                                                                                                                                    +
                                                                                                                                    +

                                                                                                                                    The server will also keep count of the number of slow consumer errors encountered, available through the monitoring varz endpoint in the slow_consumers field.

                                                                                                                                    +

                                                                                                                                    Handling slow consumers

                                                                                                                                    +

                                                                                                                                    Apart from using NATS streaming or optimizing your consuming application, there are a few options available: scale, meter, or tune NATS to your environment.

                                                                                                                                    +

                                                                                                                                    Scaling with queue subscribers

                                                                                                                                    +

                                                                                                                                    This is ideal if you do not rely on message order. Ensure your NATS subscription belongs to a queue group, then scale as required by creating more instances of your service or application. This is a great approach for microservices - each instance of your microservice will receive a portion of the messages to process, and simply add more instances of your service to scale. No code changes, configuration changes, or downtime whatsoever.

                                                                                                                                    +

                                                                                                                                    Create a subject namespace that can scale

                                                                                                                                    +

                                                                                                                                    You can distribute work further through the subject namespace, with some forethought in design. This approach is useful if you need to preserve message order. The general idea is to publish to a deep subject namespace, and consume with wildcard subscriptions while giving yourself room to expand and distribute work in the future.

                                                                                                                                    +

                                                                                                                                    For a simple example, if you have a service that receives telemetry data from IoT devices located throughout a city, you can publish to a subject namespace like Sensors.North, Sensors.South, Sensors.East and Sensors.West. Initially, you'll subscribe to Sensors.> to process everything in one consumer. As your enterprise grows and data rates exceed what one consumer can handle, you can replace your single consumer with four consuming applications to subscribe to each subject representing a smaller segment of your data. Note that your publishing applications remain untouched.

                                                                                                                                    +

                                                                                                                                    Meter the publisher

                                                                                                                                    +

                                                                                                                                    A less favorable option may be to meter the publisher. There are several ways to do this varying from simply slowing down your publisher to a more complex approach periodically issuing a blocking request/reply to match subscriber rates.

                                                                                                                                    +

                                                                                                                                    Tune NATS through configuration

                                                                                                                                    +

                                                                                                                                    The NATS server can be tuned to determine how much data can be buffered before a consumer is considered slow, and some officially supported clients allow buffer sizes to be adjusted. Decreasing buffer sizes will let you identify slow consumers more quickly. Increasing buffer sizes is not typically recommended unless you are handling temporary bursts of data. Often, increasing buffer capacity will only postpone slow consumer problems.

                                                                                                                                    +

                                                                                                                                    Server Configuration

                                                                                                                                    +

                                                                                                                                    The NATS server has a write deadline it uses to write to a connection. When this write deadline is exceeded, a client is considered to have a slow consumer. If you are encountering slow consumer errors in the server, you can increase the write deadline to buffer more data.

                                                                                                                                    +

                                                                                                                                    The write_deadline configuration option in the NATS server configuration file will tune this:

                                                                                                                                    +
                                                                                                                                    write_deadline: 2s
                                                                                                                                    +
                                                                                                                                    +

                                                                                                                                    Tuning this parameter is ideal when you have bursts of data to accommodate. Be sure you are not just postponing a slow consumer error.

                                                                                                                                    +

                                                                                                                                    Client Configuration

                                                                                                                                    +

                                                                                                                                    Most officially supported clients have an internal buffer of pending messages and will notify your application through an asynchronous error callback if a local subscription is not catching up. Receiving an error locally does not necessarily mean that the server will have identified a subscription as a slow consumer.

                                                                                                                                    +

                                                                                                                                    This buffer can be configured through setting the pending limits after a subscription has been created:

                                                                                                                                    +
                                                                                                                                    if err := sub.SetPendingLimits(1024*500, 1024*5000); err != nil {
                                                                                                                                    +  log.Fatalf("Unable to set pending limits: %v", err)
                                                                                                                                    +}
                                                                                                                                    +
                                                                                                                                    +

                                                                                                                                    The default subscriber pending message limit is 65536, and the default subscriber pending byte limit is 65536*1024

                                                                                                                                    +

                                                                                                                                    If the client reaches this internal limit, it will drop messages and continue to process new messages. This is aligned with NATS at most once delivery. It is up to your application to detect the missing messages and recover from this condition.

                                                                                                                                    + + +
                                                                                                                                    + +
                                                                                                                                    +
                                                                                                                                    +
                                                                                                                                    + +

                                                                                                                                    results matching ""

                                                                                                                                    +
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      + +

                                                                                                                                      No results matching ""

                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      + +
                                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                                      + + +
                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_admin/upgrading_cluster.html b/docs/nats_admin/upgrading_cluster.html new file mode 100644 index 0000000..984b091 --- /dev/null +++ b/docs/nats_admin/upgrading_cluster.html @@ -0,0 +1,2376 @@ + + + + + + + Upgrading a Cluster ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                      +
                                                                                                                                      + + + + + + + + +
                                                                                                                                      + +
                                                                                                                                      + +
                                                                                                                                      + + + + + + + + +
                                                                                                                                      +
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      + +
                                                                                                                                      + +

                                                                                                                                      Cluster Upgrading

                                                                                                                                      +

                                                                                                                                      The basic strategy for upgrading a cluster revolves around the server's ability to gossip cluster configuration to clients and other servers. When cluster configuration changes, clients become aware of new servers automatically. In case of a disconnect, a client has a list of servers that joined the cluster in addition to the ones it knew about from its connection settings.

                                                                                                                                      +

                                                                                                                                      Note that since each server stores it's own permission and authentication configuration, new servers added to a cluster should provide the same users and authorization to prevent clients from getting rejected or gaining unexpected privileges.

                                                                                                                                      +

                                                                                                                                      For purposes of describing the scenario, let's get some fingers on keyboards, and go through the motions. Let's consider a cluster of two servers: 'A' and 'B.', and yes - clusters should be three to five servers, but for purposes of describing the behavior and cluster upgrade process, a cluster of two servers will suffice.

                                                                                                                                      +

                                                                                                                                      Let's build this cluster:

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4222 -cluster nats://localhost:6222 -routes nats://localhost:6222,nats://localhost:6333
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      The command above is starting nats-server with debug output enabled, listening for clients on port 4222, and accepting cluster connections on port 6222. The -routes option specifies a list of nats URLs where the server will attempt to connect +to other servers. These URLs define the cluster ports enabled on the cluster peers.

                                                                                                                                      +

                                                                                                                                      Keen readers will notice a self-route. Gnatsd will ignore the self-route, but it makes for a single consistent configuration for all servers.

                                                                                                                                      +

                                                                                                                                      You will see the server started, we notice it emits some warnings because it cannot connect to 'localhost:6333'. The message more accurately reads:

                                                                                                                                      +
                                                                                                                                       Error trying to connect to route: dial tcp localhost:6333: connect: connection refused
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      Let's fix that, by starting the second server:

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4333 -cluster nats://localhost:6333 -routes nats://localhost:6222,nats://localhost:6333
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      The second server was started on port 4333 with its cluster port on 6333. Otherwise the same as 'A.'

                                                                                                                                      +

                                                                                                                                      Let's get one client, so we can observe it moving between servers as servers get removed:

                                                                                                                                      +
                                                                                                                                      nats-sub -s nats://localhost:4222 ">"
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      Nats-sub is a subscriber sample included with all NATS clients. Nats-sub subscribes to a subject and prints out any messages received. You can find the source code to the go version of nats-sub [here)(https://github.com/nats-io/go-nats/tree/master/examples). After starting the subscriber you should see a message on 'A' that a new client connected.

                                                                                                                                      +

                                                                                                                                      We have two servers and a client. Time to simulate our rolling upgrade. But wait, before we upgrade 'A,' let's introduce a new server 'T.' Server 'T' will join the existing cluster while we perform the upgrade. Its sole purpose is to provide an additional place where clients can go besides 'A.' and ensure we don't end up with a single server serving all the clients after the upgrade procedure. Clients will randomly select a server when connecting unless a special option is provided that disables that functionality (usually called 'DontRandomize' or 'noRandomize'). You can read more about "Avoiding the Thundering Herd". +Suffice it to say that clients redistribute themselves about evenly between all servers in the cluster. In our case 1/2 of the clients on 'A' will jump over to 'B' and the remaining half to 'T.'

                                                                                                                                      +

                                                                                                                                      Let's start our temporary server:

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4444 -cluster nats://localhost:6444 -routes nats://localhost:6222,nats://localhost:6333
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      After an instant or so, clients on 'A' learn of the new cluster member that joined. On our hands-on tutorial, nats-sub is now aware of 3 possible servers, 'A' (specified when we started the tool) and 'B' and 'T' learned from the cluster gossip.

                                                                                                                                      +

                                                                                                                                      We invoke our admin powers and turn off 'A' by issuing a CTRL+C to the terminal on 'A,' and observe that either 'B' or 'T' reports that a new client connected. That is our nats-sub client.

                                                                                                                                      +

                                                                                                                                      We perform the upgrade process, update the binary for 'A', and restart 'A':

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4222 -cluster nats://localhost:6222 -routes nats://localhost:6222,nats://localhost:6333
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      We move on to upgrade 'B'. Notice that clients from 'B' reconnect to 'A' and 'T'. We upgrade and restart 'B':

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4333 -cluster nats://localhost:6333 -routes nats://localhost:6222,nats://localhost:6333
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      If we had more servers, we would continue the stop, update, restart rotation as we did for 'A' and 'B.' After restarting the last server, we can go ahead and turn off 'T.' Any clients on 'T' will redistribute to our permanent cluster members.

                                                                                                                                      +

                                                                                                                                      Seed Servers

                                                                                                                                      +

                                                                                                                                      In the examples above we started nats-server specifying two clustering routes. It is possible to allow the server gossip protocol drive it and reduce the amount of configuration. You could for example start A, B and C as follows:

                                                                                                                                      +

                                                                                                                                      A - Seed Server

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4222 -cluster nats://localhost:6222
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      B

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4333 -cluster nats://localhost:6333 -routes nats://localhost:6222
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      C

                                                                                                                                      +
                                                                                                                                      nats-server -D -p 4444 -cluster nats://localhost:6444 -routes nats://localhost:6222
                                                                                                                                      +
                                                                                                                                      +

                                                                                                                                      Once they connect to the 'seed server', the will learn about all the other servers and connect to each other forming the full mesh.

                                                                                                                                      + + +
                                                                                                                                      + +
                                                                                                                                      +
                                                                                                                                      +
                                                                                                                                      + +

                                                                                                                                      results matching ""

                                                                                                                                      +
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        + +

                                                                                                                                        No results matching ""

                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        + +
                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                        + + +
                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_docker/docker_swarm.html b/docs/nats_docker/docker_swarm.html new file mode 100644 index 0000000..7f6307d --- /dev/null +++ b/docs/nats_docker/docker_swarm.html @@ -0,0 +1,2394 @@ + + + + + + + Docker Swarm ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                        +
                                                                                                                                        + + + + + + + + +
                                                                                                                                        + +
                                                                                                                                        + +
                                                                                                                                        + + + + + + + + +
                                                                                                                                        +
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        + +
                                                                                                                                        + +

                                                                                                                                        Step 1:

                                                                                                                                        +

                                                                                                                                        Create an overlay network for the cluster (in this example, nats-cluster-example), and instantiate an initial NATS server.

                                                                                                                                        +

                                                                                                                                        First create an overlay network:

                                                                                                                                        +
                                                                                                                                        % docker network create --driver overlay nats-cluster-example
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        Next instantiate an initial "seed" server for a NATS cluster listening for other servers to join route to it on port 6222:

                                                                                                                                        +
                                                                                                                                        % docker service create --network nats-cluster-example --name nats-cluster-node-1 nats:1.0.0 -cluster nats://0.0.0.0:6222 -DV
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        Step 2:

                                                                                                                                        +

                                                                                                                                        The 2nd step is to create another service which connects to the NATS server within the overlay network. Note that we connect to to the server at nats-cluster-node-1:

                                                                                                                                        +
                                                                                                                                        % docker service create --name ruby-nats --network nats-cluster-example wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 -e '
                                                                                                                                        +  NATS.on_error do |e|
                                                                                                                                        +    puts "ERROR: #{e}"
                                                                                                                                        +  end
                                                                                                                                        +  NATS.start(:servers => ["nats://nats-cluster-node-1:4222"]) do |nc|
                                                                                                                                        +    inbox = NATS.create_inbox
                                                                                                                                        +    puts "[#{Time.now}] Connected to NATS at #{nc.connected_server}, inbox: #{inbox}"
                                                                                                                                        +
                                                                                                                                        +    nc.subscribe(inbox) do |msg, reply|
                                                                                                                                        +      puts "[#{Time.now}] Received reply - #{msg}"
                                                                                                                                        +    end
                                                                                                                                        +
                                                                                                                                        +    nc.subscribe("hello") do |msg, reply|
                                                                                                                                        +      next if reply == inbox
                                                                                                                                        +      puts "[#{Time.now}] Received greeting - #{msg} - #{reply}"
                                                                                                                                        +      nc.publish(reply, "world")
                                                                                                                                        +    end
                                                                                                                                        +
                                                                                                                                        +    EM.add_periodic_timer(1) do
                                                                                                                                        +      puts "[#{Time.now}] Saying hi (servers in pool: #{nc.server_pool}"
                                                                                                                                        +      nc.publish("hello", "hi", inbox)
                                                                                                                                        +    end
                                                                                                                                        +  end'
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        Step 3:

                                                                                                                                        +

                                                                                                                                        Now you can add more nodes to the Swarm cluster via more docker services, referencing the seed server in the -routes parameter:

                                                                                                                                        +
                                                                                                                                        % docker service create --network nats-cluster-example --name nats-cluster-node-2 nats:1.0.0 -cluster nats://0.0.0.0:6222 -routes nats://nats-cluster-node-1:6222 -DV
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        In this case, nats-cluster-node-1 is seeding the rest of the cluster through the autodiscovery feature. Now NATS servers nats-cluster-node-1 and nats-cluster-node-2 are clustered together.

                                                                                                                                        +

                                                                                                                                        Add in more replicas of the subscriber:

                                                                                                                                        +
                                                                                                                                        % docker service scale ruby-nats=3
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        Then confirm the distribution on the Docker Swarm cluster:

                                                                                                                                        +
                                                                                                                                        % docker service ps ruby-nats
                                                                                                                                        +ID                         NAME         IMAGE                                     NODE    DESIRED STATE  CURRENT STATE          ERROR
                                                                                                                                        +25skxso8honyhuznu15e4989m  ruby-nats.1  wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0  node-1  Running        Running 2 minutes ago  
                                                                                                                                        +0017lut0u3wj153yvp0uxr8yo  ruby-nats.2  wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0  node-1  Running        Running 2 minutes ago  
                                                                                                                                        +2sxl8rw6vm99x622efbdmkb96  ruby-nats.3  wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0  node-2  Running        Running 2 minutes ago
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        The sample output after adding more NATS server nodes to the cluster, is below - and notice that the client is dynamically aware of more nodes being part of the cluster via auto discovery!

                                                                                                                                        +
                                                                                                                                        [2016-08-15 12:51:52 +0000] Saying hi (servers in pool: [{:uri=>#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]
                                                                                                                                        +[2016-08-15 12:51:53 +0000] Saying hi (servers in pool: [{:uri=>#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]
                                                                                                                                        +[2016-08-15 12:51:54 +0000] Saying hi (servers in pool: [{:uri=>#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]
                                                                                                                                        +[2016-08-15 12:51:55 +0000] Saying hi (servers in pool: [{:uri=>#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}, {:uri=>#<URI::Generic nats://10.0.1.7:4222>, :reconnect_attempts=>0}, {:uri=>#<URI::Generic nats://10.0.1.6:4222>, :reconnect_attempts=>0}]
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        Sample output after adding more workers which can reply back (since ignoring own responses):

                                                                                                                                        +
                                                                                                                                        [2016-08-15 16:06:26 +0000] Received reply - world
                                                                                                                                        +[2016-08-15 16:06:26 +0000] Received reply - world
                                                                                                                                        +[2016-08-15 16:06:27 +0000] Received greeting - hi - _INBOX.b8d8c01753d78e562e4dc561f1
                                                                                                                                        +[2016-08-15 16:06:27 +0000] Received greeting - hi - _INBOX.4c35d18701979f8c8ed7e5f6ea
                                                                                                                                        +
                                                                                                                                        +

                                                                                                                                        And so forth...

                                                                                                                                        +

                                                                                                                                        From here you can experiment adding to the NATS cluster by simply adding servers with new service names, that route to the seed server nats-cluster-node-1. As you've seen above, clients will automatically be updated to know that new servers are available in the cluster.

                                                                                                                                        +
                                                                                                                                        % docker service create --network nats-cluster-example --name nats-cluster-node-3 nats:1.0.0 -cluster nats://0.0.0.0:6222 -routes nats://nats-cluster-node-1:6222 -DV
                                                                                                                                        +
                                                                                                                                        + + +
                                                                                                                                        + +
                                                                                                                                        +
                                                                                                                                        +
                                                                                                                                        + +

                                                                                                                                        results matching ""

                                                                                                                                        +
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          + +

                                                                                                                                          No results matching ""

                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          + +
                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                          + + +
                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_docker/index.html b/docs/nats_docker/index.html new file mode 100644 index 0000000..295fa16 --- /dev/null +++ b/docs/nats_docker/index.html @@ -0,0 +1,2513 @@ + + + + + + + NATS and Docker ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                          +
                                                                                                                                          + + + + + + + + +
                                                                                                                                          + +
                                                                                                                                          + +
                                                                                                                                          + + + + + + + + +
                                                                                                                                          +
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          + +
                                                                                                                                          + +

                                                                                                                                          NATS Server Containerization

                                                                                                                                          +

                                                                                                                                          The NATS server is provided as a Docker image on Docker Hub that you can run using the Docker daemon. The NATS server Docker image is extremely lightweight, coming in under 10 MB in size.

                                                                                                                                          +

                                                                                                                                          Synadia actively maintains and supports the NATS server Docker image.

                                                                                                                                          +

                                                                                                                                          Usage

                                                                                                                                          +

                                                                                                                                          To use the Docker container image, install Docker and pull the public image:

                                                                                                                                          +
                                                                                                                                          > docker pull nats
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Run the NATS server image:

                                                                                                                                          +
                                                                                                                                          > docker run -d --name nats-main nats
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          By default the NATS server exposes multiple ports:

                                                                                                                                          +
                                                                                                                                            +
                                                                                                                                          • 4222 is for clients.
                                                                                                                                          • +
                                                                                                                                          • 8222 is an HTTP management port for information reporting.
                                                                                                                                          • +
                                                                                                                                          • 6222 is a routing port for clustering.
                                                                                                                                          • +
                                                                                                                                          • Use -p or -P to customize.
                                                                                                                                          • +
                                                                                                                                          +

                                                                                                                                          For example:

                                                                                                                                          +
                                                                                                                                          $ docker run -d --name nats-main nats
                                                                                                                                          +[INF] Starting nats-server version 0.6.6
                                                                                                                                          +[INF] Starting http monitor on port 8222
                                                                                                                                          +[INF] Listening for route connections on 0.0.0.0:6222
                                                                                                                                          +[INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                          +[INF] nats-server is ready
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          To run with the ports exposed on the host:

                                                                                                                                          +
                                                                                                                                          > docker run -d -p 4222:4222 -p 6222:6222 -p 8222:8222 --name nats-main nats
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          To run a second server and cluster them together:

                                                                                                                                          +
                                                                                                                                          > docker run -d --name=nats-2 --link nats-main nats --routes=nats-route://ruser:T0pS3cr3t@nats-main:6222
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          NOTE Since the Docker image protects routes using credentials we need to provide them above. Extracted from Docker image configuration

                                                                                                                                          +
                                                                                                                                          # Routes are protected, so need to use them with --routes flag
                                                                                                                                          +# e.g. --routes=nats-route://ruser:T0pS3cr3t@otherdockerhost:6222
                                                                                                                                          +authorization {
                                                                                                                                          +  user: ruser
                                                                                                                                          +  password: T0pS3cr3t
                                                                                                                                          +  timeout: 2
                                                                                                                                          +}
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          To verify the routes are connected:

                                                                                                                                          +
                                                                                                                                          $ docker run -d --name=nats-2 --link nats-main nats --routes=nats-route://ruser:T0pS3cr3t@nats-main:6222 -DV
                                                                                                                                          +[INF] Starting nats-server version 0.6.6
                                                                                                                                          +[INF] Starting http monitor on port 8222
                                                                                                                                          +[INF] Listening for route connections on :6222
                                                                                                                                          +[INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                          +[INF] nats-server is ready
                                                                                                                                          +[DBG] Trying to connect to route on nats-main:6222
                                                                                                                                          +[DBG] 172.17.0.52:6222 - rid:1 - Route connection created
                                                                                                                                          +[DBG] 172.17.0.52:6222 - rid:1 - Route connect msg sent
                                                                                                                                          +[DBG] 172.17.0.52:6222 - rid:1 - Registering remote route "ee35d227433a738c729f9422a59667bb"
                                                                                                                                          +[DBG] 172.17.0.52:6222 - rid:1 - Route sent local subscriptions
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Clustering With Docker

                                                                                                                                          +

                                                                                                                                          Below is are a couple examples of how to setup nats-server cluster using Docker. We put 3 different configurations (one per nats-server server) under a folder named conf as follows:

                                                                                                                                          +
                                                                                                                                          |-- conf
                                                                                                                                          +    |-- nats-server-A.conf
                                                                                                                                          +    |-- nats-server-B.conf
                                                                                                                                          +    |-- nats-server-C.conf
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Each one of those files have the following content below: (Here I am using ip 192.168.59.103 as an example, so just replace with the proper ip from your server)

                                                                                                                                          +

                                                                                                                                          Example 1: Setting up a cluster on 3 different servers provisioned beforehand

                                                                                                                                          +

                                                                                                                                          In this example, the three servers are started with config files that know about the other servers.

                                                                                                                                          +

                                                                                                                                          nats-server-A

                                                                                                                                          +
                                                                                                                                          # Cluster Server A
                                                                                                                                          +
                                                                                                                                          +port: 7222
                                                                                                                                          +
                                                                                                                                          +cluster {
                                                                                                                                          +  host: '0.0.0.0'
                                                                                                                                          +  port: 7244
                                                                                                                                          +
                                                                                                                                          +  routes = [
                                                                                                                                          +    nats-route://192.168.59.103:7246
                                                                                                                                          +    nats-route://192.168.59.103:7248
                                                                                                                                          +  ]
                                                                                                                                          +}
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          nats-server-B

                                                                                                                                          +
                                                                                                                                          # Cluster Server B
                                                                                                                                          +
                                                                                                                                          +port: 8222
                                                                                                                                          +
                                                                                                                                          +cluster {
                                                                                                                                          +  host: '0.0.0.0'
                                                                                                                                          +  port: 7246
                                                                                                                                          +
                                                                                                                                          +  routes = [
                                                                                                                                          +    nats-route://192.168.59.103:7244
                                                                                                                                          +    nats-route://192.168.59.103:7248
                                                                                                                                          +  ]
                                                                                                                                          +}
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          nats-server-C

                                                                                                                                          +
                                                                                                                                          # Cluster Server C
                                                                                                                                          +
                                                                                                                                          +port: 9222
                                                                                                                                          +
                                                                                                                                          +cluster {
                                                                                                                                          +  host: '0.0.0.0'
                                                                                                                                          +  port: 7248
                                                                                                                                          +
                                                                                                                                          +  routes = [
                                                                                                                                          +    nats-route://192.168.59.103:7244
                                                                                                                                          +    nats-route://192.168.59.103:7246
                                                                                                                                          +  ]
                                                                                                                                          +}
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          To start the containers, on each one of your servers, you should be able to start the nats-server image as follows:

                                                                                                                                          +
                                                                                                                                          docker run -it -p 0.0.0.0:7222:7222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 7222 -D -V
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          docker run -it -p 0.0.0.0:8222:8222 -p 0.0.0.0:7246:7246 --rm -v $(pwd)/conf/nats-server-B.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 8222 -D -V
                                                                                                                                          +
                                                                                                                                          docker run -it -p 0.0.0.0:9222:9222 -p 0.0.0.0:7248:7248 --rm -v $(pwd)/conf/nats-server-C.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 9222 -D -V
                                                                                                                                          +

                                                                                                                                          Example 2: Setting a nats-server cluster one by one

                                                                                                                                          +

                                                                                                                                          In this scenario:

                                                                                                                                          +
                                                                                                                                            +
                                                                                                                                          • We bring up A and get its ip (nats-route://192.168.59.103:7244)
                                                                                                                                          • +
                                                                                                                                          • Then create B and then use address of A in its configuration.
                                                                                                                                          • +
                                                                                                                                          • Get the address of B nats-route://192.168.59.104:7246 and create C and use the addresses of A and B.
                                                                                                                                          • +
                                                                                                                                          +

                                                                                                                                          First, we create the Node A and start up a nats-server server with the following config:

                                                                                                                                          +
                                                                                                                                          # Cluster Server A
                                                                                                                                          +
                                                                                                                                          +port: 4222
                                                                                                                                          +
                                                                                                                                          +cluster {
                                                                                                                                          +  host: '0.0.0.0'
                                                                                                                                          +  port: 7244
                                                                                                                                          +
                                                                                                                                          +}
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          docker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 4222 -D -V
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Then we proceed to create the next node. We realize that the first node has ip:port as 192.168.59.103:7244 so we add this to the routes configuration as follows:

                                                                                                                                          +
                                                                                                                                          # Cluster Server B
                                                                                                                                          +
                                                                                                                                          +port: 4222
                                                                                                                                          +
                                                                                                                                          +cluster {
                                                                                                                                          +  host: '0.0.0.0'
                                                                                                                                          +  port: 7244
                                                                                                                                          +
                                                                                                                                          +  routes = [
                                                                                                                                          +    nats-route://192.168.59.103:7244
                                                                                                                                          +  ]
                                                                                                                                          +}
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Then start server B:

                                                                                                                                          +
                                                                                                                                          docker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-B.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 4222 -D -V
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Finally, we create another Node C. We now know the routes of A and B so we can add it to its configuration:

                                                                                                                                          +
                                                                                                                                          # Cluster Server C
                                                                                                                                          +
                                                                                                                                          +port: 4222
                                                                                                                                          +
                                                                                                                                          +cluster {
                                                                                                                                          +  host: '0.0.0.0'
                                                                                                                                          +  port: 7244
                                                                                                                                          +
                                                                                                                                          +  routes = [
                                                                                                                                          +    nats-route://192.168.59.103:7244
                                                                                                                                          +    nats-route://192.168.59.104:7244
                                                                                                                                          +  ]
                                                                                                                                          +}
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Then start it:

                                                                                                                                          +
                                                                                                                                          docker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-C.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 9222 -D -V
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Testing the Clusters

                                                                                                                                          +

                                                                                                                                          Now, the following should work: make a subscription to Node A then publish to Node C. You should be able to to receive the message without problems.

                                                                                                                                          +
                                                                                                                                          nats-sub -s "nats://192.168.59.103:7222" hello &
                                                                                                                                          +
                                                                                                                                          +nats-pub -s "nats://192.168.59.105:7222" hello world
                                                                                                                                          +
                                                                                                                                          +[#1] Received on [hello] : 'world'
                                                                                                                                          +
                                                                                                                                          +# GNATSD on Node C logs:
                                                                                                                                          +[1] 2015/06/23 05:20:31.100032 [TRC] 192.168.59.103:7244 - rid:2 - <<- [MSG hello RSID:8:2 5]
                                                                                                                                          +
                                                                                                                                          +# GNATSD on Node A logs:
                                                                                                                                          +[1] 2015/06/23 05:20:31.100600 [TRC] 10.0.2.2:51007 - cid:8 - <<- [MSG hello 2 5]
                                                                                                                                          +
                                                                                                                                          +

                                                                                                                                          Tutorial

                                                                                                                                          +

                                                                                                                                          See the NATS Docker tutorial for more instructions on using the NATS server Docker image.

                                                                                                                                          + + +
                                                                                                                                          + +
                                                                                                                                          +
                                                                                                                                          +
                                                                                                                                          + +

                                                                                                                                          results matching ""

                                                                                                                                          +
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            + +

                                                                                                                                            No results matching ""

                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            + +
                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                            + + +
                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_docker/tutorial.html b/docs/nats_docker/tutorial.html new file mode 100644 index 0000000..af033f4 --- /dev/null +++ b/docs/nats_docker/tutorial.html @@ -0,0 +1,2365 @@ + + + + + + + Tutorial ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                            +
                                                                                                                                            + + + + + + + + +
                                                                                                                                            + +
                                                                                                                                            + +
                                                                                                                                            + + + + + + + + +
                                                                                                                                            +
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            + +
                                                                                                                                            + +

                                                                                                                                            NATS Docker Tutorial

                                                                                                                                            +

                                                                                                                                            In this tutorial you run the NATS server Docker image. The Docker image provides an instance of the NATS Server. Synadia actively maintains and supports the gnatsd Docker image. The NATS image is only 6 MB in size.

                                                                                                                                            +

                                                                                                                                            1. Set up Docker.

                                                                                                                                            +

                                                                                                                                            See Get Started with Docker for guidance.

                                                                                                                                            +

                                                                                                                                            The easiest way to run Docker is to use the Docker Toolbox.

                                                                                                                                            +

                                                                                                                                            2. Run the gnatsd Docker image.

                                                                                                                                            +
                                                                                                                                            > docker run -p 4222:4222 -p 8222:8222 -p 6222:6222 --name gnatsd -ti nats:latest
                                                                                                                                            +
                                                                                                                                            +

                                                                                                                                            3. Verify that the NATS server is running.

                                                                                                                                            +

                                                                                                                                            You should see the following:

                                                                                                                                            +
                                                                                                                                            Unable to find image 'nats:latest' locally
                                                                                                                                            +latest: Pulling from library/nats
                                                                                                                                            +2d3d00b0941f: Pull complete 
                                                                                                                                            +24bc6bd33ea7: Pull complete 
                                                                                                                                            +Digest: sha256:47b825feb34e545317c4ad122bd1a752a3172bbbc72104fc7fb5e57cf90f79e4
                                                                                                                                            +Status: Downloaded newer image for nats:latest
                                                                                                                                            +
                                                                                                                                            +

                                                                                                                                            Followed by this, indicating that the NATS server is running:

                                                                                                                                            +
                                                                                                                                            [1] 2017/06/28 18:34:19.605144 [INF] Starting nats-server version 0.9.6
                                                                                                                                            +[1] 2017/06/28 18:34:19.605191 [INF] Starting http monitor on 0.0.0.0:8222
                                                                                                                                            +[1] 2017/06/28 18:34:19.605286 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                            +[1] 2017/06/28 18:34:19.605312 [INF] Server is ready
                                                                                                                                            +[1] 2017/06/28 18:34:19.608756 [INF] Listening for route connections on 0.0.0.0:6222
                                                                                                                                            +
                                                                                                                                            +

                                                                                                                                            Notice how quickly the NATS server Docker image downloads. It is a mere 6 MB in size.

                                                                                                                                            +

                                                                                                                                            4. Test the NATS server to verify it is running.

                                                                                                                                            +

                                                                                                                                            An easy way to test the client connection port is through using telnet.

                                                                                                                                            +
                                                                                                                                            > telnet localhost 4222
                                                                                                                                            +
                                                                                                                                            +

                                                                                                                                            Expected result:

                                                                                                                                            +
                                                                                                                                            Trying ::1...
                                                                                                                                            +Connected to localhost.
                                                                                                                                            +Escape character is '^]'.
                                                                                                                                            +INFO {"server_id":"YMeTi2z178lM5SG302YgH2","version":"0.9.6","go":"go1.7.4","host":"0.0.0.0","port":4222,"auth_required":false,"ssl_required":false,"tls_required":false,"tls_verify":false,"max_payload":1048576}
                                                                                                                                            +
                                                                                                                                            +

                                                                                                                                            You can also test the monitoring endpoint, viewing http://localhost:8222 with a browser.

                                                                                                                                            + + +
                                                                                                                                            + +
                                                                                                                                            +
                                                                                                                                            +
                                                                                                                                            + +

                                                                                                                                            results matching ""

                                                                                                                                            +
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              + +

                                                                                                                                              No results matching ""

                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              + +
                                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                                              + + +
                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_protocol/nats-client-dev.html b/docs/nats_protocol/nats-client-dev.html new file mode 100644 index 0000000..43b0887 --- /dev/null +++ b/docs/nats_protocol/nats-client-dev.html @@ -0,0 +1,2395 @@ + + + + + + + Developing a Client ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                              +
                                                                                                                                              + + + + + + + + +
                                                                                                                                              + +
                                                                                                                                              + +
                                                                                                                                              + + + + + + + + +
                                                                                                                                              +
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              + +
                                                                                                                                              + +

                                                                                                                                              NATS Client Development Guide

                                                                                                                                              +

                                                                                                                                              This guide provides you with considerations for developing NATS clients, including:

                                                                                                                                              +
                                                                                                                                                +
                                                                                                                                              • CONNECT handling
                                                                                                                                              • +
                                                                                                                                              • Authorization
                                                                                                                                              • +
                                                                                                                                              • Verbose (acks)
                                                                                                                                              • +
                                                                                                                                              • Pedantic mode
                                                                                                                                              • +
                                                                                                                                              • Ping/pong interval
                                                                                                                                              • +
                                                                                                                                              • Parsing the protocol
                                                                                                                                              • +
                                                                                                                                              • Deciding on a parsing strategy
                                                                                                                                              • +
                                                                                                                                              • Storing and dispatching subscription callbacks
                                                                                                                                              • +
                                                                                                                                              • Implementing requests/response
                                                                                                                                              • +
                                                                                                                                              • Error handling, disconnecting and reconnecting
                                                                                                                                              • +
                                                                                                                                              • Cluster support
                                                                                                                                              • +
                                                                                                                                              +

                                                                                                                                              Probably the best way to learn about implementing a client is to look at one of the client's maintained by the Synadia team. These clients are generally full featured, so if you can use them, that is even better, but if you have to write a client these may go beyond your needs while still capturing many of the design considerations discussed here.

                                                                                                                                              + +

                                                                                                                                              Client connection options

                                                                                                                                              +

                                                                                                                                              Clients can connect in authenticated or unauthenticated mode, as well as verbose mode which enables acknowledgements. See the protocol documentation for details.

                                                                                                                                              +

                                                                                                                                              Client authorization

                                                                                                                                              +

                                                                                                                                              By default clients can connect to the server in unauthenticated mode. You can configure the NATS server to require password authentication to connect.

                                                                                                                                              +

                                                                                                                                              For example, using the command line:

                                                                                                                                              +
                                                                                                                                              nats-server -DV -m 8222 -user foo -pass bar
                                                                                                                                              +

                                                                                                                                              The client must then authenticate to connect to the server. For example:

                                                                                                                                              +
                                                                                                                                              nats.Connect("nats://foo:bar@localhost:4222")
                                                                                                                                              +

                                                                                                                                              Verbose mode

                                                                                                                                              +

                                                                                                                                              When 'verbose' is enabled (via the CONNECT message), the NATS server will return +OK to acknowledge receipt of a valid protocol message. The NATS server automatically runs in verbose mode. Most client implementations disable verbose mode (set it to false in the CONNECT message) for performance reasons.

                                                                                                                                              +

                                                                                                                                              Pedantic mode

                                                                                                                                              +

                                                                                                                                              A client may also support 'pedantic' mode. Pedantic mode indicates to the server that strict protocol enforcement is required.

                                                                                                                                              +

                                                                                                                                              Ping/pong interval

                                                                                                                                              +

                                                                                                                                              NATS implements auto-pruning. When a client connects to the server, the server expects that client to be active. Periodically, the NATS server pings each subscriber, expecting a reply. If there is no reply within the configurable time limit, the server disconnects the client.

                                                                                                                                              +

                                                                                                                                              Parsing the protocol

                                                                                                                                              +

                                                                                                                                              NATS provides a text-based message format. The text-based protocol makes it easy to implement NATS clients. The key consideration is deciding on a parsing strategy.

                                                                                                                                              +

                                                                                                                                              The NATS server implements a zero allocation byte parser that is fast and efficient. Off the wire, a NATS message is simply a slice of bytes. Across the wire the message is transported as an immutable string over a TCP connection. It is up to the client to implement logic to parse the message.

                                                                                                                                              +

                                                                                                                                              The NATS message structure includes the Subject string, an optional Reply string, and an optional Data field that is a byte array. The type Msg is a structure used by Subscribers and PublishMsg().

                                                                                                                                              +
                                                                                                                                              type Msg struct {
                                                                                                                                              +    Subject string
                                                                                                                                              +    Reply   string
                                                                                                                                              +    Data    []byte
                                                                                                                                              +    Sub     *Subscription
                                                                                                                                              +}
                                                                                                                                              +

                                                                                                                                              A NATS publisher publishes the data argument to the given subject. The data argument is left untouched and needs to be correctly interpreted on the receiver. How the client parses a NATS message depends on the programming language.

                                                                                                                                              +

                                                                                                                                              Deciding on a parsing strategy

                                                                                                                                              +

                                                                                                                                              Generally, protocol parsing for a NATS client is a string operation. In Python, for example, string operations are faster than regex. The Go and Java clients also use string operations to parse the message. But, if you look at the Ruby client, regex is used to parse the protocol because in Ruby regex is faster that string operations.

                                                                                                                                              +

                                                                                                                                              In sum, there is no magic formula for parsing—it depends on the programming language. But, you need to take into consideration how you are going to parse the message when you write a client.

                                                                                                                                              +

                                                                                                                                              Storing and dispatching subscription callbacks

                                                                                                                                              +

                                                                                                                                              When you make a subscription to the server, you need to store and dispatch callback handlers.

                                                                                                                                              +

                                                                                                                                              On the client side, you need a hash map for this data structure. The hash map will be storing the callback that maps the subscription ID to the subscription.

                                                                                                                                              +

                                                                                                                                              The key of the hash map is the subscription ID. The key is used to look up the callback in the hash map. When you process the NATS message off the wire, you pass the parameters subject, reply subject, and the payload to the callback handler, which does its work.

                                                                                                                                              +

                                                                                                                                              Thus, you must store the mapping of subscription ID to the callback. Inside the subscription you have the callback.

                                                                                                                                              +

                                                                                                                                              Implementing request/response

                                                                                                                                              +

                                                                                                                                              When to use pub/sub vs. req/rep depends on your use case. Run the tutorials for each to understand the differences between each style of implementation.

                                                                                                                                              +

                                                                                                                                              Error handling, disconnecting and reconnecting

                                                                                                                                              +

                                                                                                                                              Considerations for error handling primarily include handling client disconnections and implementing retry logic.

                                                                                                                                              +

                                                                                                                                              Cluster support

                                                                                                                                              +

                                                                                                                                              The NATS client has reconnection logic. So, if you are implementing clustering, you need to implement reconnect callbacks a priori, meaning you cannot modify it during runtime. When you start it, you need to have that information already.

                                                                                                                                              + + +
                                                                                                                                              + +
                                                                                                                                              +
                                                                                                                                              +
                                                                                                                                              + +

                                                                                                                                              results matching ""

                                                                                                                                              +
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                + +

                                                                                                                                                No results matching ""

                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                + +
                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                + + +
                                                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_protocol/nats-protocol-demo.html b/docs/nats_protocol/nats-protocol-demo.html new file mode 100644 index 0000000..36d5967 --- /dev/null +++ b/docs/nats_protocol/nats-protocol-demo.html @@ -0,0 +1,2400 @@ + + + + + + + Protocol Demo ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                +
                                                                                                                                                + + + + + + + + +
                                                                                                                                                + +
                                                                                                                                                + +
                                                                                                                                                + + + + + + + + +
                                                                                                                                                +
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                + +
                                                                                                                                                + +

                                                                                                                                                Protocol Demo

                                                                                                                                                +

                                                                                                                                                The virtues of the NATS protocol manifest quickly when you experience how easy it is to use NATS. Because the NATS protocol is text-based, you can use NATS across virtually any platform or language. In the following demo we use Telnet.

                                                                                                                                                +

                                                                                                                                                On the wire you can publish and subscribe using a simple set of protocol commands.

                                                                                                                                                +

                                                                                                                                                Instructions

                                                                                                                                                +

                                                                                                                                                1. Open a terminal session.

                                                                                                                                                +

                                                                                                                                                You'll use this terminal as the subscriber.

                                                                                                                                                +

                                                                                                                                                2. Connect to NATS.

                                                                                                                                                +
                                                                                                                                                telnet demo.nats.io 4222
                                                                                                                                                +

                                                                                                                                                Expected result:

                                                                                                                                                +
                                                                                                                                                $ telnet demo.nats.io 4222
                                                                                                                                                +Trying 107.170.221.32...
                                                                                                                                                +Connected to demo.nats.io.
                                                                                                                                                +Escape character is '^]'.
                                                                                                                                                +INFO {"server_id":"ad29ea9cbb16f2865c177bbd4db446ca","version":"0.6.8","go":"go1.5.1","host":"0.0.0.0","port":4222,"auth_required":false,"ssl_required":false,"max_payload":1048576}
                                                                                                                                                +

                                                                                                                                                3. Run the subscriber.

                                                                                                                                                +

                                                                                                                                                Subscribe to the wildcard subject foo.* with subject ID of 90.

                                                                                                                                                +
                                                                                                                                                sub foo.* 90
                                                                                                                                                +

                                                                                                                                                Subscriber result: +OK indicating successful interest registration.

                                                                                                                                                +
                                                                                                                                                sub foo.* 90
                                                                                                                                                ++OK
                                                                                                                                                +

                                                                                                                                                4. Open a second terminal window.

                                                                                                                                                +

                                                                                                                                                You'll use this terminal for the publisher.

                                                                                                                                                +

                                                                                                                                                5. Connect to NATS.

                                                                                                                                                +
                                                                                                                                                telnet demo.nats.io 4222
                                                                                                                                                +

                                                                                                                                                Expected result:

                                                                                                                                                +
                                                                                                                                                $ telnet demo.nats.io 4222
                                                                                                                                                +Trying 107.170.221.32...
                                                                                                                                                +Connected to demo.nats.io.
                                                                                                                                                +Escape character is '^]'.
                                                                                                                                                +INFO {"server_id":"ad29ea9cbb16f2865c177bbd4db446ca","version":"0.6.8","go":"go1.5.1","host":"0.0.0.0","port":4222,"auth_required":false,"ssl_required":false,"max_payload":1048576}
                                                                                                                                                +

                                                                                                                                                6. Publish a message.

                                                                                                                                                +

                                                                                                                                                The message includes the command (pub), subject (foo.bar), and length of the payload (5). Press enter and provide the payload (hello), then press enter again.

                                                                                                                                                +
                                                                                                                                                pub foo.bar 5
                                                                                                                                                +hello
                                                                                                                                                +

                                                                                                                                                Publisher result: +OK indicating message publication.

                                                                                                                                                +
                                                                                                                                                pub foo.bar 5
                                                                                                                                                +hello
                                                                                                                                                ++OK
                                                                                                                                                +

                                                                                                                                                Subscriber result: MSG + subject name + subscription ID + message payload size + message payload hello.

                                                                                                                                                +
                                                                                                                                                sub foo.* 90
                                                                                                                                                ++OK
                                                                                                                                                +MSG foo.bar 90 5
                                                                                                                                                +hello
                                                                                                                                                +

                                                                                                                                                7. Publish another message with reply subject.

                                                                                                                                                +
                                                                                                                                                pub foo.bar optional.reply.subject 5
                                                                                                                                                +hello
                                                                                                                                                ++OK
                                                                                                                                                +

                                                                                                                                                Subscriber result: MSG indicating message receipt.

                                                                                                                                                +
                                                                                                                                                MSG foo.bar 90 optional.reply.subject 5
                                                                                                                                                +hello
                                                                                                                                                +

                                                                                                                                                8. Unsubscribe from interest in the subject.

                                                                                                                                                +

                                                                                                                                                You can use the UNSUB command to unsubscribe from a message.

                                                                                                                                                +

                                                                                                                                                Run the subscriber to unsubscribe:

                                                                                                                                                +
                                                                                                                                                unsub 90
                                                                                                                                                +

                                                                                                                                                Subscriber result: +OK indicating successful deregistration of interest.

                                                                                                                                                +
                                                                                                                                                unsub 90
                                                                                                                                                ++OK
                                                                                                                                                +

                                                                                                                                                9. Reconnect to server and subscribe.

                                                                                                                                                +
                                                                                                                                                telnet demo.nats.io 4222
                                                                                                                                                +
                                                                                                                                                sub foo.* 90
                                                                                                                                                +

                                                                                                                                                10. Explore the ping/pong interval.

                                                                                                                                                +

                                                                                                                                                If you leave your telnet session open for a few minutes, you may notice that your clients receives ping requests from the server. If your client is not active, or does not respond to the server pings within the ping/pong interval, the server disconnects the client. The error message is -ERR 'Stale Connection'.

                                                                                                                                                +

                                                                                                                                                You can send a ping request to the serve and receive a PONG reply. For example:

                                                                                                                                                +
                                                                                                                                                $ telnet demo.nats.io 4222
                                                                                                                                                +Trying 107.170.221.32...
                                                                                                                                                +Connected to demo.nats.io.
                                                                                                                                                +Escape character is '^]'.
                                                                                                                                                +INFO {"server_id":"ad29ea9cbb16f2865c177bbd4db446ca","version":"0.6.8","go":"go1.5.1","host":"0.0.0.0","port":4222,"auth_required":false,"ssl_required":false,"max_payload":1048576}
                                                                                                                                                +
                                                                                                                                                +ping
                                                                                                                                                +PONG
                                                                                                                                                +
                                                                                                                                                + +
                                                                                                                                                + +
                                                                                                                                                +
                                                                                                                                                +
                                                                                                                                                + +

                                                                                                                                                results matching ""

                                                                                                                                                +
                                                                                                                                                  + +
                                                                                                                                                  +
                                                                                                                                                  + +

                                                                                                                                                  No results matching ""

                                                                                                                                                  + +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                  + +
                                                                                                                                                  +
                                                                                                                                                  + +
                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                  + + +
                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_protocol/nats-protocol.html b/docs/nats_protocol/nats-protocol.html new file mode 100644 index 0000000..58f4280 --- /dev/null +++ b/docs/nats_protocol/nats-protocol.html @@ -0,0 +1,2588 @@ + + + + + + + Client Protocol ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                  +
                                                                                                                                                  + + + + + + + + +
                                                                                                                                                  + +
                                                                                                                                                  + +
                                                                                                                                                  + + + + + + + + +
                                                                                                                                                  +
                                                                                                                                                  + +
                                                                                                                                                  +
                                                                                                                                                  + +
                                                                                                                                                  + +

                                                                                                                                                  Client Protocol

                                                                                                                                                  +

                                                                                                                                                  The wire protocol used to communicate between the NATS server and clients is a simple, text-based publish/subscribe style protocol. Clients connect to and communicate with nats-server (the NATS server) through a regular TCP/IP socket using a small set of protocol operations that are terminated by a new line.

                                                                                                                                                  +

                                                                                                                                                  Unlike traditional messaging systems that use a binary message format that require an API to consume, the text-based NATS protocol makes it easy to implement clients in a wide variety of programming and scripting languages. In fact, refer to the topic NATS Protocol Demo to play with the NATS protocol for yourself using telnet.

                                                                                                                                                  +

                                                                                                                                                  The NATS server implements a zero allocation byte parser that is fast and efficient.

                                                                                                                                                  +

                                                                                                                                                  Protocol conventions

                                                                                                                                                  +

                                                                                                                                                  Control line w/Optional Content: Each interaction between the client and server consists of a control, or protocol, line of text followed, optionally by message content. Most of the protocol messages don't require content, only PUB and MSG include payloads.

                                                                                                                                                  +

                                                                                                                                                  Field Delimiters: The fields of NATS protocol messages are delimited by whitespace characters '`' (space) or\t` (tab). Multiple whitespace characters will be treated as a single field delimiter.

                                                                                                                                                  +

                                                                                                                                                  Newlines: NATS uses CR followed by LF (CR+LF, \r\n, 0x0D0A) to terminate protocol messages. This newline sequence is also used to mark the end of the message payload in a PUB or MSG protocol message.

                                                                                                                                                  +

                                                                                                                                                  Subject names: Subject names, including reply subject (INBOX) names, are case-sensitive and must be non-empty alphanumeric strings with no embedded whitespace, and optionally token-delimited using the dot character (.), e.g.:

                                                                                                                                                  +

                                                                                                                                                  FOO, BAR, foo.bar, foo.BAR, FOO.BAR and FOO.BAR.BAZ are all valid subject names

                                                                                                                                                  +

                                                                                                                                                  FOO. BAR, foo. .bar andfoo..bar are not valid subject names

                                                                                                                                                  +

                                                                                                                                                  Character Encoding: Subject names should be ascii characters for maximum interoperability. Due to language constraints and performance, some clients may support UTF-8 subject names, as may the server. No guarantees of non-ASCII support are provided.

                                                                                                                                                  +

                                                                                                                                                  Wildcards: NATS supports the use of wildcards in subject subscriptions.

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • The asterisk character (*) matches a single token at any level of the subject.
                                                                                                                                                  • +
                                                                                                                                                  • The greater than symbol (>), also known as the full wildcard, matches one or more tokens at the tail of a subject, and must be the last token. The wildcarded subject foo.> will match foo.bar or foo.bar.baz.1, but not foo.
                                                                                                                                                  • +
                                                                                                                                                  • Wildcards must be a separate token (foo.*.baz or foo.> are syntactically valid; foo*.bar, f*o.b*r and foo> are not)
                                                                                                                                                  • +
                                                                                                                                                  +

                                                                                                                                                  For example, the wildcard subscriptions foo.*.quux and foo.> both match foo.bar.quux, but only the latter matches foo.bar.baz. With the full wildcard, +it is also possible to express interest in every subject that may exist in NATS: sub > 1, limited of course by authorization settings.

                                                                                                                                                  +

                                                                                                                                                  Protocol messages

                                                                                                                                                  +

                                                                                                                                                  The following table briefly describes the NATS protocol messages. NATS protocol operation names are case insensitive, thus SUB foo 1\r\n and sub foo 1\r\n are equivalent.

                                                                                                                                                  +

                                                                                                                                                  Click the name to see more detailed information, including syntax:

                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                  OP NameSent ByDescription
                                                                                                                                                  INFOServerSent to client after initial TCP/IP connection
                                                                                                                                                  CONNECTClientSent to server to specify connection information
                                                                                                                                                  PUBClientPublish a message to a subject, with optional reply subject
                                                                                                                                                  SUBClientSubscribe to a subject (or subject wildcard)
                                                                                                                                                  UNSUBClientUnsubscribe (or auto-unsubscribe) from subject
                                                                                                                                                  MSGServerDelivers a message payload to a subscriber
                                                                                                                                                  PINGBothPING keep-alive message
                                                                                                                                                  PONGBothPONG keep-alive response
                                                                                                                                                  +OKServerAcknowledges well-formed protocol message in verbose mode
                                                                                                                                                  -ERRServerIndicates a protocol error. May cause client disconnect.
                                                                                                                                                  +

                                                                                                                                                  The following sections explain each protocol message.

                                                                                                                                                  +

                                                                                                                                                  INFO

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  As soon as the server accepts a connection from the client, it will send information about itself and the configuration and security requirements that are necessary for the client to successfully authenticate with the server and exchange messages.

                                                                                                                                                  +

                                                                                                                                                  When using the updated client protocol (see CONNECT below), INFO messages can be sent anytime by the server. This means clients with that protocol level need to be able to asynchronously handle INFO messages.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  INFO {["option_name":option_value],...}

                                                                                                                                                  +

                                                                                                                                                  The valid options are as follows:

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • server_id: The unique identifier of the NATS server
                                                                                                                                                  • +
                                                                                                                                                  • version: The version of the NATS server
                                                                                                                                                  • +
                                                                                                                                                  • go: The version of golang the NATS server was built with
                                                                                                                                                  • +
                                                                                                                                                  • host: The IP address used to start the NATS server, by default this will be 0.0.0.0 and can be configured with -client_advertise host:port
                                                                                                                                                  • +
                                                                                                                                                  • port: The port number the NATS server is configured to listen on
                                                                                                                                                  • +
                                                                                                                                                  • max_payload: Maximum payload size, in bytes, that the server will accept from the client.
                                                                                                                                                  • +
                                                                                                                                                  • proto: An integer indicating the protocol version of the server. The server version 1.2.0 sets this to 1 to indicate that it supports the "Echo" feature.
                                                                                                                                                  • +
                                                                                                                                                  • client_id: An optional unsigned integer (64 bits) representing the internal client identifier in the server. This can be used to filter client connections in monitoring, correlate with error logs, etc...
                                                                                                                                                  • +
                                                                                                                                                  • auth_required: If this is set, then the client should try to authenticate upon connect.
                                                                                                                                                  • +
                                                                                                                                                  • tls_required: If this is set, then the client must perform the TLS/1.2 handshake. Note, this used to be ssl_required and has been updated along with the protocol from SSL to TLS.
                                                                                                                                                  • +
                                                                                                                                                  • tls_verify: If this is set, the client must provide a valid certificate during the TLS handshake.
                                                                                                                                                  • +
                                                                                                                                                  • connect_urls : An optional list of server urls that a client can connect to.
                                                                                                                                                  • +
                                                                                                                                                  +
                                                                                                                                                  connect_urls
                                                                                                                                                  +

                                                                                                                                                  The connect_urls field is a list of urls the server may send when a client first connects, and when there are changes to server cluster topology. This field is considered optional, and may be omitted based on server configuration and client protocol level.

                                                                                                                                                  +

                                                                                                                                                  When a NATS server cluster expands, an INFO message is sent to the client with an updated connect_urls list. This cloud-friendly feature asynchronously notifies a client of known servers, allowing it to connect to servers not originally configured.

                                                                                                                                                  +

                                                                                                                                                  The connect_urls will contain a list of strings with an IP and port, looking like this: "connect_urls":["10.0.0.184:4333","192.168.129.1:4333","192.168.192.1:4333"]

                                                                                                                                                  +

                                                                                                                                                  Example

                                                                                                                                                  +

                                                                                                                                                  Below you can see a sample connection string from a telnet connection to the demo.nats.io site.

                                                                                                                                                  +
                                                                                                                                                  % telnet demo.nats.io 4222
                                                                                                                                                  +
                                                                                                                                                  +Trying 107.170.221.32...
                                                                                                                                                  +Connected to demo.nats.io.
                                                                                                                                                  +Escape character is '^]'.
                                                                                                                                                  +INFO {"server_id":"Zk0GQ3JBSrg3oyxCRRlE09","version":"1.2.0","proto":1,"go":"go1.10.3","host":"0.0.0.0","port":4222,"max_payload":1048576,"client_id":2392}
                                                                                                                                                  +
                                                                                                                                                  +

                                                                                                                                                  CONNECT

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  The CONNECT message is the client version of the INFO message. Once the client has established a TCP/IP socket connection with the NATS server, and an INFO message has been received from the server, the client may send a CONNECT message to the NATS server to provide more information about the current connection as well as security information.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  CONNECT {["option_name":option_value],...}

                                                                                                                                                  +

                                                                                                                                                  The valid options are as follows:

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • verbose: Turns on +OK protocol acknowledgements.
                                                                                                                                                  • +
                                                                                                                                                  • pedantic: Turns on additional strict format checking, e.g. for properly formed subjects
                                                                                                                                                  • +
                                                                                                                                                  • tls_required: Indicates whether the client requires an SSL connection.
                                                                                                                                                  • +
                                                                                                                                                  • auth_token: Client authorization token (if auth_required is set)
                                                                                                                                                  • +
                                                                                                                                                  • user: Connection username (if auth_required is set)
                                                                                                                                                  • +
                                                                                                                                                  • pass: Connection password (if auth_required is set)
                                                                                                                                                  • +
                                                                                                                                                  • name: Optional client name
                                                                                                                                                  • +
                                                                                                                                                  • lang: The implementation language of the client.
                                                                                                                                                  • +
                                                                                                                                                  • version: The version of the client.
                                                                                                                                                  • +
                                                                                                                                                  • protocol: optional int. Sending 0 (or absent) indicates client supports original protocol. Sending 1 indicates that the client supports dynamic reconfiguration of cluster topology changes by asynchronously receiving INFO messages with known servers it can reconnect to.
                                                                                                                                                  • +
                                                                                                                                                  • echo: Optional boolean. If set to true, the server (version 1.2.0+) will not send originating messages from this connection to its own subscriptions. Clients should set this to true only for server supporting this feature, which is when proto in the INFO protocol is set to at least 1.
                                                                                                                                                  • +
                                                                                                                                                  +

                                                                                                                                                  Example

                                                                                                                                                  +

                                                                                                                                                  Here is an example from the default string of the Go client:

                                                                                                                                                  +
                                                                                                                                                  [CONNECT {"verbose":false,"pedantic":false,"tls_required":false,"name":"","lang":"go","version":"1.2.2","protocol":1}]\r\n
                                                                                                                                                  +

                                                                                                                                                  Most clients set verbose to false by default. This means that the server should not confirm each message it receives on this connection with a +OK back to the client.

                                                                                                                                                  +

                                                                                                                                                  PUB

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  The PUB message publishes the message payload to the given subject name, optionally supplying a reply subject. If a reply subject is supplied, it will be delivered to eligible subscribers along with the supplied payload. Note that the payload itself is optional. To omit the payload, set the payload size to 0, but the second CRLF is still required.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  PUB <subject> [reply-to] <#bytes>\r\n[payload]\r\n

                                                                                                                                                  +

                                                                                                                                                  where:

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • subject: The destination subject to publish to
                                                                                                                                                  • +
                                                                                                                                                  • reply-to: The optional reply inbox subject that subscribers can use to send a response back to the publisher/requestor
                                                                                                                                                  • +
                                                                                                                                                  • #bytes: The payload size in bytes
                                                                                                                                                  • +
                                                                                                                                                  • payload: The message payload data
                                                                                                                                                  • +
                                                                                                                                                  +

                                                                                                                                                  Example

                                                                                                                                                  +

                                                                                                                                                  To publish the ASCII string message payload "Hello NATS!" to subject FOO:

                                                                                                                                                  +

                                                                                                                                                  PUB FOO 11\r\nHello NATS!\r\n

                                                                                                                                                  +

                                                                                                                                                  To publish a request message "Knock Knock" to subject FRONT.DOOR with reply subject INBOX.22:

                                                                                                                                                  +

                                                                                                                                                  PUB FRONT.DOOR INBOX.22 11\r\nKnock Knock\r\n

                                                                                                                                                  +

                                                                                                                                                  To publish an empty message to subject NOTIFY:

                                                                                                                                                  +

                                                                                                                                                  PUB NOTIFY 0\r\n\r\n

                                                                                                                                                  +

                                                                                                                                                  SUB

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  SUB initiates a subscription to a subject, optionally joining a distributed queue group.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  SUB <subject> [queue group] <sid>\r\n

                                                                                                                                                  +

                                                                                                                                                  where:

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • subject: The subject name to subscribe to
                                                                                                                                                  • +
                                                                                                                                                  • queue group: If specified, the subscriber will join this queue group
                                                                                                                                                  • +
                                                                                                                                                  • sid: A unique alphanumeric subscription ID, generated by the client
                                                                                                                                                  • +
                                                                                                                                                  +

                                                                                                                                                  Example

                                                                                                                                                  +

                                                                                                                                                  To subscribe to the subject FOO with the connection-unique subscription identifier (sid) 1:

                                                                                                                                                  +

                                                                                                                                                  SUB FOO 1\r\n

                                                                                                                                                  +

                                                                                                                                                  To subscribe the current connection to the subject BAR as part of distribution queue group G1 with sid 44:

                                                                                                                                                  +

                                                                                                                                                  SUB BAR G1 44\r\n

                                                                                                                                                  +

                                                                                                                                                  UNSUB

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  UNSUB unsubcribes the connection from the specified subject, or auto-unsubscribes after the specified number of messages has been received.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  UNSUB <sid> [max_msgs]

                                                                                                                                                  +

                                                                                                                                                  where:

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • sid: The unique alphanumeric subscription ID of the subject to unsubscribe from
                                                                                                                                                  • +
                                                                                                                                                  • max_msgs: An optional number of messages to wait for before automatically unsubscribing
                                                                                                                                                  • +
                                                                                                                                                  +

                                                                                                                                                  Example

                                                                                                                                                  +

                                                                                                                                                  The following examples concern subject FOO which has been assigned sid 1. To unsubscribe from FOO:

                                                                                                                                                  +

                                                                                                                                                  UNSUB 1\r\n

                                                                                                                                                  +

                                                                                                                                                  To auto-unsubscribe from FOO after 5 messages have been received:

                                                                                                                                                  +

                                                                                                                                                  UNSUB 1 5\r\n

                                                                                                                                                  +

                                                                                                                                                  MSG

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  The MSG protocol message is used to deliver an application message to the client.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  MSG <subject> <sid> [reply-to] <#bytes>\r\n[payload]\r\n

                                                                                                                                                  +

                                                                                                                                                  where:

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • subject: Subject name this message was received on
                                                                                                                                                  • +
                                                                                                                                                  • sid: The unique alphanumeric subscription ID of the subject
                                                                                                                                                  • +
                                                                                                                                                  • reply-to: The inbox subject on which the publisher is listening for responses
                                                                                                                                                  • +
                                                                                                                                                  • #bytes: Size of the payload in bytes
                                                                                                                                                  • +
                                                                                                                                                  • payload: The message payload data
                                                                                                                                                  • +
                                                                                                                                                  +

                                                                                                                                                  Example

                                                                                                                                                  +

                                                                                                                                                  The following message delivers an application message from subject FOO.BAR:

                                                                                                                                                  +

                                                                                                                                                  MSG FOO.BAR 9 11\r\nHello World\r\n

                                                                                                                                                  +

                                                                                                                                                  To deliver the same message along with a reply inbox:

                                                                                                                                                  +

                                                                                                                                                  MSG FOO.BAR 9 INBOX.34 11\r\nHello World\r\n

                                                                                                                                                  +

                                                                                                                                                  PING/PONG

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  PING and PONG implement a simple keep-alive mechanism between client and server. Once a client establishes a connection to the NATS server, the server will continuously send PING messages to the client at a configurable interval. If the client fails to respond with a PONG message within the configured response interval, the server will terminate its connection. If your connection stays idle for too long, it is cut off.

                                                                                                                                                  +

                                                                                                                                                  If the server sends a ping request, you can reply with a pong message to notify the server that you are still interested. You can also ping the server and will receive a pong reply. The ping/pong interval is configurable.

                                                                                                                                                  +

                                                                                                                                                  The server uses normal traffic as a ping/pong proxy, so a client that has messages flowing may not receive a ping from the server.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  PING\r\n

                                                                                                                                                  +

                                                                                                                                                  PONG\r\n

                                                                                                                                                  +

                                                                                                                                                  Example

                                                                                                                                                  +

                                                                                                                                                  The following example shows the demo server pinging the client and finally shutting it down.

                                                                                                                                                  +
                                                                                                                                                  telnet demo.nats.io 4222
                                                                                                                                                  +
                                                                                                                                                  +Trying 107.170.221.32...
                                                                                                                                                  +Connected to demo.nats.io.
                                                                                                                                                  +Escape character is '^]'.
                                                                                                                                                  +INFO {"server_id":"Zk0GQ3JBSrg3oyxCRRlE09","version":"1.2.0","proto":1,"go":"go1.10.3","host":"0.0.0.0","port":4222,"max_payload":1048576,"client_id":2392}
                                                                                                                                                  +PING
                                                                                                                                                  +PING
                                                                                                                                                  +-ERR 'Stale Connection'
                                                                                                                                                  +Connection closed by foreign host.
                                                                                                                                                  +

                                                                                                                                                  +OK/ERR

                                                                                                                                                  +

                                                                                                                                                  Description

                                                                                                                                                  +

                                                                                                                                                  When the verbose connection option is set to true (the default value), the server acknowledges each well-formed protocol message from the client with a +OK message. Most NATS clients set the verbose option to false using the CONNECT message

                                                                                                                                                  +

                                                                                                                                                  The -ERR message is used by the server indicate a protocol, authorization, or other runtime connection error to the client. Most of these errors result in the server closing the connection.

                                                                                                                                                  +

                                                                                                                                                  Handling of these errors usually has to be done asynchronously.

                                                                                                                                                  +

                                                                                                                                                  Syntax

                                                                                                                                                  +

                                                                                                                                                  +OK

                                                                                                                                                  +

                                                                                                                                                  -ERR <error message>

                                                                                                                                                  +

                                                                                                                                                  Some protocol errors result in the server closing the connection. Upon recieving these errors, the connection is no longer valid and the client should clean up relevant resources. These errors include:

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • -ERR 'Unknown Protocol Operation': Unknown protocol error
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Attempted To Connect To Route Port': Client attempted to connect to a route port instead of the client port
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Authorization Violation': Client failed to authenticate to the server with credentials specified in the CONNECT message
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Authorization Timeout': Client took too long to authenticate to the server after establishing a connection (default 1 second)
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Invalid Client Protocol': Client specified an invalid protocol version in the CONNECT message
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Maximum Control Line Exceeded': Message destination subject and reply subject length exceeded the maximum control line value specified by the max_control_line server option. The default is 1024 bytes.
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Parser Error': Cannot parse the protocol message sent by the client
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Secure Connection - TLS Required': The server requires TLS and the client does not have TLS enabled.
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Stale Connection': The server hasn't received a message from the client, including a PONG in too long.
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Maximum Connections Exceeded': This error is sent by the server when creating a new connection and the server has exceeded the maximum number of connections specified by the max_connections server option. The default is 64k.
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Slow Consumer': The server pending data size for the connection has reached the maximum size (default 10MB).
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Maximum Payload Violation': Client attempted to publish a message with a payload size that exceeds the max_payload size configured on the server. This value is supplied to the client upon connection in the initial INFO message. The client is expected to do proper accounting of byte size to be sent to the server in order to handle this error synchronously.
                                                                                                                                                  • +
                                                                                                                                                  +

                                                                                                                                                  Protocol error messages where the connection remains open are listed below. The client should not close the connection in these cases.

                                                                                                                                                  +
                                                                                                                                                    +
                                                                                                                                                  • -ERR 'Invalid Subject': Client sent a malformed subject (e.g. sub foo. 90)
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Permissions Violation for Subscription to <subject>': The user specified in the CONNECT message does not have permission to subscribe to the subject.
                                                                                                                                                  • +
                                                                                                                                                  • -ERR 'Permissions Violation for Publish to <subject>': The user specified in the CONNECT message does not have permissions to publish to the subject.
                                                                                                                                                  • +
                                                                                                                                                  + + +
                                                                                                                                                  + +
                                                                                                                                                  +
                                                                                                                                                  +
                                                                                                                                                  + +

                                                                                                                                                  results matching ""

                                                                                                                                                  +
                                                                                                                                                    + +
                                                                                                                                                    +
                                                                                                                                                    + +

                                                                                                                                                    No results matching ""

                                                                                                                                                    + +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    + +
                                                                                                                                                    +
                                                                                                                                                    + +
                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                    + + +
                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_protocol/nats-server-protocol.html b/docs/nats_protocol/nats-server-protocol.html new file mode 100644 index 0000000..29bc6bb --- /dev/null +++ b/docs/nats_protocol/nats-server-protocol.html @@ -0,0 +1,2539 @@ + + + + + + + NATS Cluster Protocol ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                    +
                                                                                                                                                    + + + + + + + + +
                                                                                                                                                    + +
                                                                                                                                                    + +
                                                                                                                                                    + + + + + + + + +
                                                                                                                                                    +
                                                                                                                                                    + +
                                                                                                                                                    +
                                                                                                                                                    + +
                                                                                                                                                    + +

                                                                                                                                                    NATS Cluster Protocol

                                                                                                                                                    +

                                                                                                                                                    The NATS server clustering protocol describes the messages passed between NATS servers within a cluster to share subscription state, forward messages, and share cluster topology. It is a simple, text-based publish/subscribe style protocol. Servers communicate with each other through a regular TCP/IP socket using a small set of protocol operations that are terminated by newline.

                                                                                                                                                    +

                                                                                                                                                    The NATS server implements a zero allocation byte parser that is fast and efficient.

                                                                                                                                                    +

                                                                                                                                                    The NATS cluster protocol is very similar to that of the NATS client protocol. In the context of a cluster, it can be helpful to visualize a server being a proxy operating on behalf of its connected clients, subscribing, unsubscribing, sending and receiving messages.

                                                                                                                                                    +

                                                                                                                                                    NATS Cluster protocol conventions

                                                                                                                                                    +

                                                                                                                                                    Subject names and wildcards: The NATS cluster protocol has the same features and restrictions as the client with respect to subject names and wildcards, with one addition - a server can publish subjects prefixed with _SYS., which is reserved for messages that are internally generated by a server.

                                                                                                                                                    +

                                                                                                                                                    Field Delimiters: The fields of NATS protocol messages are delimited by whitespace characters '`' (space) or\t` (tab). +Multiple whitespace characters will be treated as a single field delimiter.

                                                                                                                                                    +

                                                                                                                                                    Newlines: Like other text-based protocols, NATS uses CR followed by LF (CR+LF, \r\n, 0x0D0A) to terminate protocol messages. This newline sequence is also used to mark the beginning of the actual message payload in a PUB or MSG protocol message.

                                                                                                                                                    +

                                                                                                                                                    NATS Cluster protocol messages

                                                                                                                                                    +

                                                                                                                                                    The following table briefly describes the NATS cluster protocol messages. +As in the client protocol, the NATS protocol operation names are case insensitive, thus SUB foo 1\r\n and sub foo 1\r\n are equivalent.

                                                                                                                                                    +

                                                                                                                                                    Click the name to see more detailed information, including syntax:

                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                    OP NameSent ByDescription
                                                                                                                                                    INFOAll ServersSent after initial TCP/IP connection and to update cluster knowledge
                                                                                                                                                    CONNECTAll ServersSent to establish a route
                                                                                                                                                    PUBSending ServerSent when a message is published by a client.
                                                                                                                                                    SUBAll ServersSubscribes to a subject on behalf of interested clients.
                                                                                                                                                    UNSUBAll ServersUnsubscribe (or auto-unsubscribe) from subject.
                                                                                                                                                    MSGReceiving ServerDelivers a message payload to a subscriber on the local server.
                                                                                                                                                    PINGAll ServersPING keep-alive message
                                                                                                                                                    PONGAll ServersPONG keep-alive response
                                                                                                                                                    +OK/-ERRAll ServersIndicates a protocol error. Will cause the server to disconnect.
                                                                                                                                                    +

                                                                                                                                                    The following sections explain each protocol message.

                                                                                                                                                    +

                                                                                                                                                    INFO

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    As soon as the server accepts a connection from another server, it will send information about itself and the configuration and security requirements that are necessary for the other server to successfully authenticate with the server and exchange messages.

                                                                                                                                                    +

                                                                                                                                                    The connecting server also sends an INFO message. The accepting server will add an ip field containing the address and port of the connecting server, and forward the new server's INFO message to all servers it is routed to.

                                                                                                                                                    +

                                                                                                                                                    Any servers in a cluster receiving an INFO message with an ip field will attempt to connect to the server at that address, unless already connected. This propagation of INFO messages on behalf of a connecting server provides automatic discovery of new servers joining a cluster.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    INFO {["option_name":option_value],...}

                                                                                                                                                    +

                                                                                                                                                    The valid options are as follows:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • server_id: The unique identifier of the NATS server
                                                                                                                                                    • +
                                                                                                                                                    • version: The version of the NATS server
                                                                                                                                                    • +
                                                                                                                                                    • go: The version of golang the NATS server was built with
                                                                                                                                                    • +
                                                                                                                                                    • host: The host specified in the cluster parameter/options
                                                                                                                                                    • +
                                                                                                                                                    • port: The port number specified in the cluster parameter/options
                                                                                                                                                    • +
                                                                                                                                                    • auth_required: If this is set, then the server should try to authenticate upon connect.
                                                                                                                                                    • +
                                                                                                                                                    • tls_required: If this is set, then the server must authenticate using TLS.
                                                                                                                                                    • +
                                                                                                                                                    • max_payload: Maximum payload size that the server will accept.
                                                                                                                                                    • +
                                                                                                                                                    • connect_urls : A list of server urls that a client can connect to.
                                                                                                                                                    • +
                                                                                                                                                    • ip: Optional route connection address of a server, nats-route://<hostname>:<port>
                                                                                                                                                    • +
                                                                                                                                                    +

                                                                                                                                                    Example

                                                                                                                                                    +

                                                                                                                                                    Below is an example of an INFO string received by a NATS server, with the ip field.

                                                                                                                                                    +

                                                                                                                                                    INFO {"server_id":"KP19vTlB417XElnv8kKaC5","version":"0.9.4","go":"","host":"localhost","port":5222,"auth_required":false,"tls_required":false,"tls_verify":false,"max_payload":1048576,"ip":"nats-route://127.0.0.1:5222/","connect_urls":["localhost:4222"]}

                                                                                                                                                    +

                                                                                                                                                    CONNECT

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    The CONNECT message is analogous to the INFO message. Once the NATS server has established a TCP/IP socket connection with another server, and an INFO message has been received, the server will send a CONNECT message to provide more information about the current connection as well as security information.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    CONNECT {["option_name":option_value],...}

                                                                                                                                                    +

                                                                                                                                                    The valid options are as follows:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • verbose: Turns on +OK protocol acknowledgements.
                                                                                                                                                    • +
                                                                                                                                                    • pedantic: Turns on additional strict format checking, e.g. for properly formed subjects
                                                                                                                                                    • +
                                                                                                                                                    • tls_required: Indicates whether the server requires an SSL connection.
                                                                                                                                                    • +
                                                                                                                                                    • auth_token: Authorization token
                                                                                                                                                    • +
                                                                                                                                                    • user: Connection username (if auth_required is set)
                                                                                                                                                    • +
                                                                                                                                                    • pass: Connection password (if auth_required is set)
                                                                                                                                                    • +
                                                                                                                                                    • name: Generated Server Name
                                                                                                                                                    • +
                                                                                                                                                    • lang: The implementation language of the server (go).
                                                                                                                                                    • +
                                                                                                                                                    • version: The version of the server.
                                                                                                                                                    • +
                                                                                                                                                    +

                                                                                                                                                    Example

                                                                                                                                                    +

                                                                                                                                                    Here is an example from the default string from a server.

                                                                                                                                                    +

                                                                                                                                                    CONNECT {"verbose":false,"pedantic":false,"tls_required":false,"name":"wt0vffeQyoDGMVBC2aKX0b"}\r\n

                                                                                                                                                    +

                                                                                                                                                    Servers should set verbose to false by default. This means that other routed servers will not be sending an +OK payload back after the remote server ingested the message.

                                                                                                                                                    +

                                                                                                                                                    PUB

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    The PUB message publishes the message payload to the given subject name, optionally supplying a reply subject, to another server. If a reply subject is supplied, it will be delivered to eligible subscribers along with the supplied payload. Note that the payload itself is optional. To omit the payload, set the payload size to 0.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    PUB <subject> [reply-to] <#bytes>\r\n[payload]\r\n

                                                                                                                                                    +

                                                                                                                                                    where:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • subject: The destination subject to publish to
                                                                                                                                                    • +
                                                                                                                                                    • reply-to: The reply inbox subject that subscribers can use to send a response back to the publisher/requestor
                                                                                                                                                    • +
                                                                                                                                                    • #bytes: The payload size in bytes
                                                                                                                                                    • +
                                                                                                                                                    • payload: The message payload data
                                                                                                                                                    • +
                                                                                                                                                    +

                                                                                                                                                    Example

                                                                                                                                                    +

                                                                                                                                                    To publish the string message payload "Hello NATS!" to subject FOO:

                                                                                                                                                    +

                                                                                                                                                    PUB FOO 11\r\nHello NATS!\r\n

                                                                                                                                                    +

                                                                                                                                                    To publish a request message "Knock Knock" to subject FRONT.DOOR with reply subject INBOX.22:

                                                                                                                                                    +

                                                                                                                                                    PUB FRONT.DOOR INBOX.22 11\r\nKnock Knock\r\n

                                                                                                                                                    +

                                                                                                                                                    To publish an empty message to subject NOTIFY:

                                                                                                                                                    +

                                                                                                                                                    PUB NOTIFY 0\r\n\r\n

                                                                                                                                                    +

                                                                                                                                                    SUB

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    SUB initiates a subscription to a subject, optionally joining a distributed queue group.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    Basic Subscription: SUB <subject> RSID:<cid>:<sid>\r\n

                                                                                                                                                    +

                                                                                                                                                    Queue Subscription: SUB <subject> <queue> QRSID:<cid>:<sid>\r\n

                                                                                                                                                    +

                                                                                                                                                    where:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • subject: The subject name to subscribe to
                                                                                                                                                    • +
                                                                                                                                                    • queue: If specified, the subscriber will join this queue group
                                                                                                                                                    • +
                                                                                                                                                    • cid: A 64bit unsigned integer representing the client connection
                                                                                                                                                    • +
                                                                                                                                                    • sid: A unique alphanumeric subscription ID representing the server's subscription
                                                                                                                                                    • +
                                                                                                                                                    +

                                                                                                                                                    Example

                                                                                                                                                    +

                                                                                                                                                    To subscribe to the subject FOO with the local unique subject identifier of 1, and the connection-unique subject identifier (sid) 1:

                                                                                                                                                    +

                                                                                                                                                    SUB FOO RSID:1:1\r\n

                                                                                                                                                    +

                                                                                                                                                    To subscribe the current connection to the subject BAR as part of distribution queue group G1 with local sid of 14, and a client sid 44:

                                                                                                                                                    +

                                                                                                                                                    SUB BAR G1 QRSID:14:44\r\n

                                                                                                                                                    +

                                                                                                                                                    UNSUB

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    UNSUB unsubcribes the connection from the specified subject, or auto-unsubscribes after the specified number of messages has been received. It is sent by a server when one of it's clients unsubscribes.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    Basic Subscription: UNSUB <sid> RSID:<cid>:<sid> [max_msgs]\r\n

                                                                                                                                                    +

                                                                                                                                                    Queue Subscription: UNSUB <sid> QRSID:<cid>:<sid> [max_msgs]\r\n

                                                                                                                                                    +

                                                                                                                                                    where:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • sid: The unique alphanumeric subscription ID of the subject to unsubscribe from
                                                                                                                                                    • +
                                                                                                                                                    • max_msgs: Number of messages to wait for before automatically unsubscribing
                                                                                                                                                    • +
                                                                                                                                                    • cid: A 64bit unsigned integer representing the client connection
                                                                                                                                                    • +
                                                                                                                                                    • sid: A unique alphanumeric subscription ID representing the server's subscription
                                                                                                                                                    • +
                                                                                                                                                    +

                                                                                                                                                    Example

                                                                                                                                                    +

                                                                                                                                                    The following examples concern subject FOO which has been assigned an internal subscriber id of 5, and a client sid of 1. To unsubscribe from FOO:

                                                                                                                                                    +

                                                                                                                                                    UNSUB RSID:5:1\r\n

                                                                                                                                                    +

                                                                                                                                                    To auto-unsubscribe from FOO after 5 messages have been received:

                                                                                                                                                    +

                                                                                                                                                    UNSUB RSID:1:1 5\r\n

                                                                                                                                                    +

                                                                                                                                                    MSG

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    The MSG protocol message delivers a message from another server.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    MSG <subject> <sid> [reply-to] <#bytes>\r\n[payload]\r\n

                                                                                                                                                    +

                                                                                                                                                    where:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • subject: Subject name this message was received on
                                                                                                                                                    • +
                                                                                                                                                    • sid: The unique alphanumeric subscription ID of the subject
                                                                                                                                                    • +
                                                                                                                                                    • reply-to: The inbox subject on which the publisher is listening for responses
                                                                                                                                                    • +
                                                                                                                                                    • #bytes: Size of the payload in bytes
                                                                                                                                                    • +
                                                                                                                                                    • payload: The message payload data
                                                                                                                                                    • +
                                                                                                                                                    +

                                                                                                                                                    Example

                                                                                                                                                    +

                                                                                                                                                    The following message delivers a message from subject FOO.BAR:

                                                                                                                                                    +

                                                                                                                                                    MSG FOO.BAR 9 11\r\nHello World\r\n

                                                                                                                                                    +

                                                                                                                                                    Deliver the same message along with a reply inbox:

                                                                                                                                                    +

                                                                                                                                                    MSG FOO.BAR 9 INBOX.34 11\r\nHello World\r\n

                                                                                                                                                    +

                                                                                                                                                    PING/PONG

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    PING and PONG implement a simple keep-alive mechanism between servers. Once two servers establish a connection with each other, the NATS server will continuously send PING messages to other servers at a configurable interval. If another server fails to respond with a PONG message within the configured response interval, the server will terminate its connection. If your connection stays idle for too long, it is cut off.

                                                                                                                                                    +

                                                                                                                                                    If the another server sends a ping request, a server will reply with a pong message to notify the other server that it is still present.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    PING\r\n +PONG\r\n

                                                                                                                                                    +

                                                                                                                                                    +OK/ERR

                                                                                                                                                    +

                                                                                                                                                    Description

                                                                                                                                                    +

                                                                                                                                                    When the verbose connection option is set to true (the default value), the server acknowledges each well-formed protocol message with a +OK message. NATS servers set the verbose option to false using the CONNECT message

                                                                                                                                                    +

                                                                                                                                                    The -ERR message is used by the server indicate a protocol, authorization, or other runtime connection error to another server. Most of these errors result in the server closing the connection.

                                                                                                                                                    +

                                                                                                                                                    Handling of these errors usually has to be done asynchronously.

                                                                                                                                                    +

                                                                                                                                                    Syntax

                                                                                                                                                    +

                                                                                                                                                    +OK

                                                                                                                                                    +

                                                                                                                                                    -ERR <error message>

                                                                                                                                                    +

                                                                                                                                                    Protocol error messages which close the connection:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • -ERR 'Unknown Protocol Operation': Unknown protocol error
                                                                                                                                                    • +
                                                                                                                                                    • -ERR 'Authorization Violation': Server failed to authenticate to another server with credentials specified in the CONNECT message.
                                                                                                                                                    • +
                                                                                                                                                    • -ERR 'Authorization Timeout': Server took too long to authenticate to another server after establishing a connection (default 1 second)
                                                                                                                                                    • +
                                                                                                                                                    • -ERR 'Parser Error': Cannot parse the protocol message sent by another server
                                                                                                                                                    • +
                                                                                                                                                    • -ERR 'Stale Connection': PING/PONG interval expired.
                                                                                                                                                    • +
                                                                                                                                                    • -ERR 'Slow Consumer': The other server's pending data size for the route connection has been exceeded. The default limit is time based, where data cannot be flushed within a two second write deadline.
                                                                                                                                                    • +
                                                                                                                                                    • -ERR 'Maximum Payload Exceeded': Server attempted to publish a message with a payload size that exceeds the max_payload size configured on another server.
                                                                                                                                                    • +
                                                                                                                                                    +

                                                                                                                                                    Protocol error messages which do not close the connection:

                                                                                                                                                    +
                                                                                                                                                      +
                                                                                                                                                    • -ERR 'Invalid Subject': Server sent a malformed subject (e.g. sub foo. 90)
                                                                                                                                                    • +
                                                                                                                                                    + + +
                                                                                                                                                    + +
                                                                                                                                                    +
                                                                                                                                                    +
                                                                                                                                                    + +

                                                                                                                                                    results matching ""

                                                                                                                                                    +
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      + +

                                                                                                                                                      No results matching ""

                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      + +
                                                                                                                                                      + + + + + + + + + + +
                                                                                                                                                      + + +
                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/auth_intro.html b/docs/nats_server/auth_intro.html new file mode 100644 index 0000000..0e20b44 --- /dev/null +++ b/docs/nats_server/auth_intro.html @@ -0,0 +1,2401 @@ + + + + + + + Authentication ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                      +
                                                                                                                                                      + + + + + + + + +
                                                                                                                                                      + +
                                                                                                                                                      + +
                                                                                                                                                      + + + + + + + + +
                                                                                                                                                      +
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      + +
                                                                                                                                                      + +

                                                                                                                                                      Authentication

                                                                                                                                                      +

                                                                                                                                                      The NATS server provides various ways of authenticating clients:

                                                                                                                                                      + +

                                                                                                                                                      Authentication deals with allowing a NATS client to connect to the server. +With the exception of JWT authentication, authentication and authorization is configured in the authorization section of the configuration.

                                                                                                                                                      +

                                                                                                                                                      Authorization Map

                                                                                                                                                      +

                                                                                                                                                      The authorization block provides authentication configuration as well as authorization:

                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                      PropertyDescription
                                                                                                                                                      tokenSpecifies a global token that can be used to authenticate to the server (exclusive of user and password)
                                                                                                                                                      userSpecifies a single global user name for clients to the server (exclusive of token)
                                                                                                                                                      passwordSpecifies a single global password for clients to the server (exclusive of token)
                                                                                                                                                      usersA list of user configuration maps
                                                                                                                                                      timeoutMaximum number of seconds to wait for client authentication
                                                                                                                                                      +

                                                                                                                                                      For multiple username and password credentials, specify a users list.

                                                                                                                                                      +

                                                                                                                                                      User Configuration Map

                                                                                                                                                      +

                                                                                                                                                      A user configuration map specifies credentials and permissions options for a single user:

                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                      PropertyDescription
                                                                                                                                                      userusername for client authentication
                                                                                                                                                      passwordpassword for the user entry
                                                                                                                                                      nkeypublic nkey identifying an user
                                                                                                                                                      permissionspermissions map configuring subjects accessible to the user
                                                                                                                                                      + + +
                                                                                                                                                      + +
                                                                                                                                                      +
                                                                                                                                                      +
                                                                                                                                                      + +

                                                                                                                                                      results matching ""

                                                                                                                                                      +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        No results matching ""

                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                        + + +
                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/auth_timeout.html b/docs/nats_server/auth_timeout.html new file mode 100644 index 0000000..7cd9c78 --- /dev/null +++ b/docs/nats_server/auth_timeout.html @@ -0,0 +1,2341 @@ + + + + + + + Authentication Timeout ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        + + + + + + + + +
                                                                                                                                                        + +
                                                                                                                                                        + +
                                                                                                                                                        + + + + + + + + +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        + +

                                                                                                                                                        Authentication Timeout

                                                                                                                                                        +

                                                                                                                                                        Much like the tls timeout option, authentication can specify a timeout value.

                                                                                                                                                        +

                                                                                                                                                        If a client doesn't authenticate to the server within the specified time, the server disconnects the server to prevent abuses.

                                                                                                                                                        +

                                                                                                                                                        Timeouts are specified in seconds (and can be fractional).

                                                                                                                                                        +

                                                                                                                                                        As with TLS timeouts, long timeouts can be an opportunity for abuse. If setting the authentication timeout, it is important to note. that it should be longer than the tls timeout option, as the authentication timeout includes the TLS upgrade time.

                                                                                                                                                        +
                                                                                                                                                        authorization: {
                                                                                                                                                        +    timeout: 3
                                                                                                                                                        +    users: [
                                                                                                                                                        +        {user: a, password b},
                                                                                                                                                        +        {user: b, password a}
                                                                                                                                                        +    ]
                                                                                                                                                        +}
                                                                                                                                                        +
                                                                                                                                                        + +
                                                                                                                                                        + +
                                                                                                                                                        +
                                                                                                                                                        +
                                                                                                                                                        + +

                                                                                                                                                        results matching ""

                                                                                                                                                        +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + +

                                                                                                                                                          No results matching ""

                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                          + + +
                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/authorization.html b/docs/nats_server/authorization.html new file mode 100644 index 0000000..b8caf75 --- /dev/null +++ b/docs/nats_server/authorization.html @@ -0,0 +1,2417 @@ + + + + + + + Authorization ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                          +
                                                                                                                                                          + + + + + + + + +
                                                                                                                                                          + +
                                                                                                                                                          + +
                                                                                                                                                          + + + + + + + + +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          + +
                                                                                                                                                          + +

                                                                                                                                                          Authorization

                                                                                                                                                          +

                                                                                                                                                          The NATS server supports authorization using subject-level permissions on a per-user basis. Permission-based authorization is available withmulti-user authentication via the users list.

                                                                                                                                                          +

                                                                                                                                                          Each permission specifies the subjects the user can publish to and subscribe to. The parser is generous at understanding what the intent is, so both arrays and singletons are processed. For more complex configuation you can specify a permission object which explicetly allows or denies subjects. The specified subjects can specify wildcards. Permissions can make use of variables.

                                                                                                                                                          +

                                                                                                                                                          You configure authorization by creating a permissions entry in the authorization object.

                                                                                                                                                          +

                                                                                                                                                          Permissions Configuration Map

                                                                                                                                                          +

                                                                                                                                                          The permissions map specify subjects that can be subscribed to or published by the specified client.

                                                                                                                                                          + + + + + + + + + + + + + + + + + +
                                                                                                                                                          PropertyDescription
                                                                                                                                                          publishsubject, list of subjects, or permission map the client can publish
                                                                                                                                                          subscribesubject, list of subjects, or permission map the client can publish
                                                                                                                                                          +

                                                                                                                                                          Permission Map

                                                                                                                                                          +

                                                                                                                                                          The permission map provides additional properties for configuring a permissions map. Instead of providing a list of subjects that are allowed, the permission map allows you to explicitely list subjects you want toallow or deny:

                                                                                                                                                          + + + + + + + + + + + + + + + + + +
                                                                                                                                                          PropertyDescription
                                                                                                                                                          allowList of subject names that are allowed to the client
                                                                                                                                                          denyList of subjects that are denied to the client
                                                                                                                                                          +

                                                                                                                                                          Important Note NATS Authorizations are whitelist only, meaning in order to not break request/reply patterns you need to add rules as above with Alice and Bob for the _INBOX.> pattern. If an unauthorized client publishes or attempts to subscribe to a subject that has not been whitelisted, the action fails and is logged at the server, and an error message is returned to the client.

                                                                                                                                                          +

                                                                                                                                                          Example

                                                                                                                                                          +

                                                                                                                                                          Here is an example authorization configuration that uses variables which defines four users, three of whom are assigned explicit permissions.

                                                                                                                                                          +
                                                                                                                                                          authorization {
                                                                                                                                                          +  ADMIN = {
                                                                                                                                                          +    publish = ">"
                                                                                                                                                          +    subscribe = ">"
                                                                                                                                                          +  }
                                                                                                                                                          +  REQUESTOR = {
                                                                                                                                                          +    publish = ["req.a", "req.b"]
                                                                                                                                                          +    subscribe = "_INBOX.>"
                                                                                                                                                          +  }
                                                                                                                                                          +  RESPONDER = {
                                                                                                                                                          +    subscribe = ["req.a", "req.b"]
                                                                                                                                                          +    publish = "_INBOX.>"
                                                                                                                                                          +  }
                                                                                                                                                          +  DEFAULT_PERMISSIONS = {
                                                                                                                                                          +    publish = "SANDBOX.*"
                                                                                                                                                          +    subscribe = ["PUBLIC.>", "_INBOX.>"]
                                                                                                                                                          +  }
                                                                                                                                                          +  users = [
                                                                                                                                                          +    {user: admin,   password: $ADMIN_PASS, permissions: $ADMIN}
                                                                                                                                                          +    {user: client,  password: $CLIENT_PASS, permissions: $REQUESTOR}
                                                                                                                                                          +    {user: service,  password: $SERVICE_PASS, permissions: $RESPONDER}
                                                                                                                                                          +    {user: other, password: $OTHER_PASS}
                                                                                                                                                          +  ]
                                                                                                                                                          +}
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          +

                                                                                                                                                          DEFAULT_PERMISSIONS is a special permissions name. If defined, it applies to all users that don't have specific permissions set.

                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                            +
                                                                                                                                                          • admin has ADMIN permissions and can publish/subscribe on any subject. We use the wildcard > to match any subject.

                                                                                                                                                            +
                                                                                                                                                          • +
                                                                                                                                                          • client is a REQUESTOR and can publish requests on subjects req.a or req.b, and subscribe to anything that is a response (_INBOX.>).

                                                                                                                                                            +
                                                                                                                                                          • +
                                                                                                                                                          • service is a RESPONDER to req.a and req.b requests, so it needs to be able to subscribe to the request subjects and respond to client's that are able to publish requests to req.a and req.b. The reply subject subject is an inbox. Typically inboxes start with the prefix _INBOX. followed by a generated string. The _INBOX.> subject matches all subjects that start with _INBOX..

                                                                                                                                                            +
                                                                                                                                                          • +
                                                                                                                                                          • other has no permissions granted and therefore inherits the default permission set. You set the inherited default permissions by assigning them to the default_permissions entry inside of the authorization configuration block.

                                                                                                                                                            +
                                                                                                                                                          • +
                                                                                                                                                          +
                                                                                                                                                          +

                                                                                                                                                          Note that in the above example, any client with permissions to subscribe to _INBOX.> is able to receive all responses published. More sensitive installations will want to add or subset the prefix to further limit what a client can subscribe to. Alternatively Accounts allow complete isolation limiting what members of an account can see.

                                                                                                                                                          +
                                                                                                                                                          + + +
                                                                                                                                                          + +
                                                                                                                                                          +
                                                                                                                                                          +
                                                                                                                                                          + +

                                                                                                                                                          results matching ""

                                                                                                                                                          +
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            + +

                                                                                                                                                            No results matching ""

                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                                            + + +
                                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/clients.html b/docs/nats_server/clients.html new file mode 100644 index 0000000..e931a93 --- /dev/null +++ b/docs/nats_server/clients.html @@ -0,0 +1,2373 @@ + + + + + + + Clients ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                            +
                                                                                                                                                            + + + + + + + + +
                                                                                                                                                            + +
                                                                                                                                                            + +
                                                                                                                                                            + + + + + + + + +
                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            + +

                                                                                                                                                            NATS Clients

                                                                                                                                                            +

                                                                                                                                                            The nats-server doesn't come bundled with any clients. But most client libraries come with tools that allow you to publish, subscribe, send requests and reply messages.

                                                                                                                                                            +

                                                                                                                                                            If you have a client library installed you can try using a bundled client. Otherwise you can easily install some clients.

                                                                                                                                                            +

                                                                                                                                                            If you have Go installed:

                                                                                                                                                            +
                                                                                                                                                            > go get https://github.com/nats-io/go-nats-examples/tools/nats-pub
                                                                                                                                                            +> go get https://github.com/nats-io/go-nats-examples/tools/nats-sub
                                                                                                                                                            +

                                                                                                                                                            Or download a zip file

                                                                                                                                                            +

                                                                                                                                                            You can install pre-built binaries from the go-nats-examples repo

                                                                                                                                                            +

                                                                                                                                                            Testing your setup

                                                                                                                                                            +

                                                                                                                                                            Open a terminal and start a nats-server:

                                                                                                                                                            +
                                                                                                                                                            > nats-server
                                                                                                                                                            +[29670] 2019/05/16 08:45:59.836809 [INF] Starting nats-server version 2.0.0
                                                                                                                                                            +[29670] 2019/05/16 08:45:59.836889 [INF] Git commit [not set]
                                                                                                                                                            +[29670] 2019/05/16 08:45:59.837161 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                            +[29670] 2019/05/16 08:45:59.837168 [INF] Server id is NAYH35Q7ROQHLQ3K565JR4OPTJGO5EK4FJX6KX5IHHEPLQBRSYVWI2NO
                                                                                                                                                            +[29670] 2019/05/16 08:45:59.837170 [INF] Server is ready
                                                                                                                                                            +

                                                                                                                                                            On another terminal start session start a subscriber:

                                                                                                                                                            +
                                                                                                                                                            > nats-sub ">"
                                                                                                                                                            +Listening on [>]
                                                                                                                                                            +

                                                                                                                                                            Note that when the client connected, the server didn't log anything interesting because server output is fairly quiet unless something interesting happens.

                                                                                                                                                            +

                                                                                                                                                            To make the server output more lively, you can specify the -V flag to enable logging of server protocol tracing messages. Go ahead and <ctrl>+c the process running the server, and restart the server with the -V flag:

                                                                                                                                                            +
                                                                                                                                                            > nats-server -V
                                                                                                                                                            +[29785] 2019/05/16 08:46:12.731278 [INF] Starting nats-server version 2.0.0
                                                                                                                                                            +[29785] 2019/05/16 08:46:12.731347 [INF] Git commit [not set]
                                                                                                                                                            +[29785] 2019/05/16 08:46:12.731488 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                            +[29785] 2019/05/16 08:46:12.731493 [INF] Server id is NCEOJJ5SBJKUTMZEDNU3NBPJSLJPCMQJUIQIWKFHWE5DPETJKHX2CO2Y
                                                                                                                                                            +[29785] 2019/05/16 08:46:12.731495 [INF] Server is ready
                                                                                                                                                            +[29785] 2019/05/16 08:46:13.467099 [TRC] 127.0.0.1:49805 - cid:1 - <<- [CONNECT {"verbose":false,"pedantic":false,"tls_required":false,"name":"NATS Sample Subscriber","lang":"go","version":"1.7.0","protocol":1,"echo":true}]
                                                                                                                                                            +[29785] 2019/05/16 08:46:13.467200 [TRC] 127.0.0.1:49805 - cid:1 - <<- [PING]
                                                                                                                                                            +[29785] 2019/05/16 08:46:13.467206 [TRC] 127.0.0.1:49805 - cid:1 - ->> [PONG]
                                                                                                                                                            +

                                                                                                                                                            If you had created a subscriber, you should notice output on the subscriber telling you that it diesconnected, and reconnected. The server output above is more interesting. You can see the subscriber send a CONNECT protocol message, and a PING which was responded to by the server with a PONG.

                                                                                                                                                            +
                                                                                                                                                            +

                                                                                                                                                            You can learn more about the NATS protocol here, but more intersting than the protocol description is an interactive demo.

                                                                                                                                                            +
                                                                                                                                                            +

                                                                                                                                                            On a third terminal, publish your first message:

                                                                                                                                                            +
                                                                                                                                                            > nats-pub hello world
                                                                                                                                                            +Published [hello] : 'world'
                                                                                                                                                            +

                                                                                                                                                            On the subscriber window you should see:

                                                                                                                                                            +
                                                                                                                                                            [#1] Received on [hello]: 'world'
                                                                                                                                                            +

                                                                                                                                                            Testing Against a Remote Server

                                                                                                                                                            +

                                                                                                                                                            If the NATS server was running in a different machine or a different port, you'll have to specify that to the client by specifying a NATS URL. NATS urls take the form of: nats://<server>:<port> and tls://<server>:<port>. URLs with a tls protocol sport a secured TLS connection.

                                                                                                                                                            +
                                                                                                                                                            > nats-sub -s nats://server:port ">"
                                                                                                                                                            +

                                                                                                                                                            If you want to try on a remote server, the NATS team maintains a demo server you can reach at demo.nats.io.

                                                                                                                                                            +
                                                                                                                                                            > nats-sub -s nats://demo.nats.io ">"
                                                                                                                                                            +
                                                                                                                                                            + +
                                                                                                                                                            + +
                                                                                                                                                            +
                                                                                                                                                            +
                                                                                                                                                            + +

                                                                                                                                                            results matching ""

                                                                                                                                                            +
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              + +

                                                                                                                                                              No results matching ""

                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              + +
                                                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                                                              + + +
                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/cluster_config.html b/docs/nats_server/cluster_config.html new file mode 100644 index 0000000..5404704 --- /dev/null +++ b/docs/nats_server/cluster_config.html @@ -0,0 +1,2381 @@ + + + + + + + Configuration ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                              +
                                                                                                                                                              + + + + + + + + +
                                                                                                                                                              + +
                                                                                                                                                              + +
                                                                                                                                                              + + + + + + + + +
                                                                                                                                                              +
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              + +
                                                                                                                                                              + +

                                                                                                                                                              Cluster Configuration

                                                                                                                                                              +

                                                                                                                                                              The cluster configuration map has the following configuration options:

                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                              PropertyDescription
                                                                                                                                                              listenhost/port for inbound route connections
                                                                                                                                                              authorizationauthorization map for configuring cluster clients. Supports token, username/password and TLS authentication. permissions are ignored.
                                                                                                                                                              timeoutMaximum amount of time (in seconds) to wait for a clustering connection to complete
                                                                                                                                                              tlsA tls configuration map for securing the clustering connection
                                                                                                                                                              routesA list of other servers (URLs) to cluster with. Self-routes are ignored.
                                                                                                                                                              +
                                                                                                                                                              cluster {
                                                                                                                                                              +  listen: localhost:4244 # host/port for inbound route connections
                                                                                                                                                              +
                                                                                                                                                              +  # Authorization for route connections
                                                                                                                                                              +  authorization {
                                                                                                                                                              +    user: route_user
                                                                                                                                                              +    # ./util/mkpasswd -p T0pS3cr3tT00!
                                                                                                                                                              +        password: $2a$11$xH8dkGrty1cBNtZjhPeWJewu/YPbSU.rXJWmS6SFilOBXzmZoMk9m
                                                                                                                                                              +    timeout: 0.5
                                                                                                                                                              +  }
                                                                                                                                                              +
                                                                                                                                                              +  # Routes are actively solicited and connected to from this server.
                                                                                                                                                              +  # Other servers can connect to us if they supply the correct credentials
                                                                                                                                                              +  # in their routes definitions from above.
                                                                                                                                                              +  routes = [
                                                                                                                                                              +    nats-route://user1:pass1@127.0.0.1:4245
                                                                                                                                                              +    nats-route://user2:pass2@127.0.0.1:4246
                                                                                                                                                              +  ]
                                                                                                                                                              +}
                                                                                                                                                              +
                                                                                                                                                              + + +
                                                                                                                                                              + +
                                                                                                                                                              +
                                                                                                                                                              +
                                                                                                                                                              + +

                                                                                                                                                              results matching ""

                                                                                                                                                              +
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                + +

                                                                                                                                                                No results matching ""

                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                + + +
                                                                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/cluster_tls.html b/docs/nats_server/cluster_tls.html new file mode 100644 index 0000000..7b73617 --- /dev/null +++ b/docs/nats_server/cluster_tls.html @@ -0,0 +1,2350 @@ + + + + + + + TLS Authentication ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                +
                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                + +
                                                                                                                                                                + +
                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                + +

                                                                                                                                                                Cluster TLS Mutual Authentication

                                                                                                                                                                +

                                                                                                                                                                When setting up clusters all servers in the cluster, if using TLS, will both verify the connecting endpoints and the server responses. So certificates are checked in both directions. Certificates can be configured only for the server's cluster identity, keeping client and server certificates separate from cluster formation.

                                                                                                                                                                +
                                                                                                                                                                cluster {
                                                                                                                                                                +  listen: 127.0.0.1:4244
                                                                                                                                                                +
                                                                                                                                                                +  tls {
                                                                                                                                                                +    # Route cert
                                                                                                                                                                +    cert_file: "./configs/certs/srva-cert.pem"
                                                                                                                                                                +    # Private key
                                                                                                                                                                +    key_file:  "./configs/certs/srva-key.pem"
                                                                                                                                                                +    # Optional certificate authority verifying connected routes
                                                                                                                                                                +    # Required when we have self-signed CA, etc.
                                                                                                                                                                +    ca_file:   "./configs/certs/ca.pem"
                                                                                                                                                                +  }
                                                                                                                                                                +  # Routes are actively solicited and connected to from this server.
                                                                                                                                                                +  # Other servers can connect to us if they supply the correct credentials
                                                                                                                                                                +  # in their routes definitions from above.
                                                                                                                                                                +  routes = [
                                                                                                                                                                +    nats-route://127.0.0.1:4246
                                                                                                                                                                +  ]
                                                                                                                                                                +}
                                                                                                                                                                +
                                                                                                                                                                + +
                                                                                                                                                                + +
                                                                                                                                                                +
                                                                                                                                                                +
                                                                                                                                                                + +

                                                                                                                                                                results matching ""

                                                                                                                                                                +
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  + +

                                                                                                                                                                  No results matching ""

                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  + +
                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                  + + +
                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/clustering.html b/docs/nats_server/clustering.html new file mode 100644 index 0000000..19d8724 --- /dev/null +++ b/docs/nats_server/clustering.html @@ -0,0 +1,2454 @@ + + + + + + + Clustering ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                  +
                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                  + +
                                                                                                                                                                  + +
                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                  +
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  + +
                                                                                                                                                                  + +

                                                                                                                                                                  NATS Server Clustering

                                                                                                                                                                  +

                                                                                                                                                                  NATS supports running each server in clustered mode. You can cluster servers together for high volume messaging systems and resiliency and high availability. Clients are cluster-aware.

                                                                                                                                                                  +

                                                                                                                                                                  Note that NATS clustered servers have a forwarding limit of one hop. This means that each nats-server instance will only forward messages that it has received from a client to the immediately adjacent nats-server instances to which it has routes. Messages received from a route will only be distributed to local clients. Therefore a full mesh cluster, or complete graph, is recommended for NATS to function as intended and as described throughout the documentation.

                                                                                                                                                                  +

                                                                                                                                                                  Cluster URLs

                                                                                                                                                                  +

                                                                                                                                                                  In addition to a port for listening for clients, nats-server can listen on a "cluster" URL (the -cluster option). Additional nats-server servers can then add that URL to their -routes argument to join the cluster. These options can also be specified in a config file, but only the command-line version is shown in this overview for simplicity.

                                                                                                                                                                  +

                                                                                                                                                                  Running with No Cluster

                                                                                                                                                                  +
                                                                                                                                                                  nats-server -p 4222
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  Running a Simple Cluster

                                                                                                                                                                  +
                                                                                                                                                                  # Server A on 10.10.0.1
                                                                                                                                                                  +nats-server -p 4222 -cluster nats://10.10.0.1:5222
                                                                                                                                                                  +
                                                                                                                                                                  +# Server B on 10.10.0.2
                                                                                                                                                                  +nats-server -p 4222 -cluster nats://10.10.0.2:5222 -routes nats://10.10.0.1:5222
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  # Server A on 10.10.0.1
                                                                                                                                                                  +nats-server -p 4222 -cluster nats://10.10.0.1:5222 -routes nats://10.10.0.2:5222
                                                                                                                                                                  +
                                                                                                                                                                  +# Server B on 10.10.0.2
                                                                                                                                                                  +nats-server -p 4222 -cluster nats://10.10.0.2:5222 -routes nats://10.10.0.1:5222
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  Clients connecting to any server in the cluster will remain connected to the cluster even if the server it originally connected to is taken down, as long as at least a single server remains.

                                                                                                                                                                  +

                                                                                                                                                                  Command Line Options

                                                                                                                                                                  +

                                                                                                                                                                  The following cluster options are supported:

                                                                                                                                                                  +
                                                                                                                                                                  --routes [rurl-1, rurl-2]     Routes to solicit and connect
                                                                                                                                                                  +--cluster nats://host:port    Cluster URL for solicited routes
                                                                                                                                                                  +

                                                                                                                                                                  When a NATS server routes to a specified URL, it will advertise its own cluster URL to all other servers in the route route effectively creating a routing mesh to all other servers.

                                                                                                                                                                  +

                                                                                                                                                                  Note: when using the -routes option, you must also specify a -cluster option.

                                                                                                                                                                  +

                                                                                                                                                                  Clustering can also be configured using the server config file.

                                                                                                                                                                  +

                                                                                                                                                                  Three Server Cluster Example

                                                                                                                                                                  +

                                                                                                                                                                  The following example demonstrates how to run a cluster of 3 servers on the same host. We will start with the seed server and use the -D command line parameter to produce debug information.

                                                                                                                                                                  +
                                                                                                                                                                  nats-server -p 4222 -cluster nats://localhost:4248 -D
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  Alternatively, you could use a configuration file, let's call it seed.conf, with a content similar to this:

                                                                                                                                                                  +
                                                                                                                                                                  # Cluster Seed Node
                                                                                                                                                                  +
                                                                                                                                                                  +listen: 127.0.0.1:4222
                                                                                                                                                                  +http: 8222
                                                                                                                                                                  +
                                                                                                                                                                  +cluster {
                                                                                                                                                                  +  listen: 127.0.0.1:4248
                                                                                                                                                                  +}
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  And start the server like this:

                                                                                                                                                                  +
                                                                                                                                                                  nats-server -config ./seed.conf -D
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  This will produce an output similar to:

                                                                                                                                                                  +
                                                                                                                                                                  [75653] 2016/04/26 15:14:47.339321 [INF] Listening for route connections on 127.0.0.1:4248
                                                                                                                                                                  +[75653] 2016/04/26 15:14:47.340787 [INF] Listening for client connections on 127.0.0.1:4222
                                                                                                                                                                  +[75653] 2016/04/26 15:14:47.340822 [DBG] server id is xZfu3u7usAPWkuThomoGzM
                                                                                                                                                                  +[75653] 2016/04/26 15:14:47.340825 [INF] server is ready
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  It is also possible to specify the hostname and port independently. At least the port is required. If you leave the hostname off it will bind to all the interfaces ('0.0.0.0').

                                                                                                                                                                  +
                                                                                                                                                                  cluster {
                                                                                                                                                                  +  host: 127.0.0.1
                                                                                                                                                                  +  port: 4248
                                                                                                                                                                  +}
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  Now let's start two more servers, each one connecting to the seed server.

                                                                                                                                                                  +
                                                                                                                                                                  nats-server -p 5222 -cluster nats://localhost:5248 -routes nats://localhost:4248 -D
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  When running on the same host, we need to pick different ports for the client connections -p, and for the port used to accept other routes -cluster. Note that -routes points to the -cluster address of the seed server (localhost:4248).

                                                                                                                                                                  +

                                                                                                                                                                  Here is the log produced. See how it connects and registers a route to the seed server (...GzM).

                                                                                                                                                                  +
                                                                                                                                                                  [75665] 2016/04/26 15:14:59.970014 [INF] Listening for route connections on localhost:5248
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971150 [INF] Listening for client connections on 0.0.0.0:5222
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971176 [DBG] server id is 53Yi78q96t52QdyyWLKIyE
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971179 [INF] server is ready
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971199 [DBG] Trying to connect to route on localhost:4248
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971551 [DBG] 127.0.0.1:4248 - rid:1 - Route connection created
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971559 [DBG] 127.0.0.1:4248 - rid:1 - Route connect msg sent
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971720 [DBG] 127.0.0.1:4248 - rid:1 - Registering remote route "xZfu3u7usAPWkuThomoGzM"
                                                                                                                                                                  +[75665] 2016/04/26 15:14:59.971731 [DBG] 127.0.0.1:4248 - rid:1 - Route sent local subscriptions
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  From the seed's server log, we see that the route is indeed accepted:

                                                                                                                                                                  +
                                                                                                                                                                  [75653] 2016/04/26 15:14:59.971602 [DBG] 127.0.0.1:52679 - rid:1 - Route connection created
                                                                                                                                                                  +[75653] 2016/04/26 15:14:59.971733 [DBG] 127.0.0.1:52679 - rid:1 - Registering remote route "53Yi78q96t52QdyyWLKIyE"
                                                                                                                                                                  +[75653] 2016/04/26 15:14:59.971739 [DBG] 127.0.0.1:52679 - rid:1 - Route sent local subscriptions
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  Finally, let's start the third server:

                                                                                                                                                                  +
                                                                                                                                                                  nats-server -p 6222 -cluster nats://localhost:6248 -routes nats://localhost:4248 -D
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  Again, notice that we use a different client port and cluster address, but still point to the same seed server at the address nats://localhost:4248:

                                                                                                                                                                  +
                                                                                                                                                                  [75764] 2016/04/26 15:19:11.528185 [INF] Listening for route connections on localhost:6248
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.529787 [INF] Listening for client connections on 0.0.0.0:6222
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.529829 [DBG] server id is IRepas80TBwJByULX1ulAp
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.529842 [INF] server is ready
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.529872 [DBG] Trying to connect to route on localhost:4248
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.530272 [DBG] 127.0.0.1:4248 - rid:1 - Route connection created
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.530281 [DBG] 127.0.0.1:4248 - rid:1 - Route connect msg sent
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.530408 [DBG] 127.0.0.1:4248 - rid:1 - Registering remote route "xZfu3u7usAPWkuThomoGzM"
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.530414 [DBG] 127.0.0.1:4248 - rid:1 - Route sent local subscriptions
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.530595 [DBG] 127.0.0.1:52727 - rid:2 - Route connection created
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.530659 [DBG] 127.0.0.1:52727 - rid:2 - Registering remote route "53Yi78q96t52QdyyWLKIyE"
                                                                                                                                                                  +[75764] 2016/04/26 15:19:11.530664 [DBG] 127.0.0.1:52727 - rid:2 - Route sent local subscriptions
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  First a route is created to the seed server (...GzM) and after that, a route from ...IyE - which is the ID of the second server - is accepted.

                                                                                                                                                                  +

                                                                                                                                                                  The log from the seed server shows that it accepted the route from the third server:

                                                                                                                                                                  +
                                                                                                                                                                  [75653] 2016/04/26 15:19:11.530308 [DBG] 127.0.0.1:52726 - rid:2 - Route connection created
                                                                                                                                                                  +[75653] 2016/04/26 15:19:11.530384 [DBG] 127.0.0.1:52726 - rid:2 - Registering remote route "IRepas80TBwJByULX1ulAp"
                                                                                                                                                                  +[75653] 2016/04/26 15:19:11.530389 [DBG] 127.0.0.1:52726 - rid:2 - Route sent local subscriptions
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  And the log from the second server shows that it connected to the third.

                                                                                                                                                                  +
                                                                                                                                                                  [75665] 2016/04/26 15:19:11.530469 [DBG] Trying to connect to route on 127.0.0.1:6248
                                                                                                                                                                  +[75665] 2016/04/26 15:19:11.530565 [DBG] 127.0.0.1:6248 - rid:2 - Route connection created
                                                                                                                                                                  +[75665] 2016/04/26 15:19:11.530570 [DBG] 127.0.0.1:6248 - rid:2 - Route connect msg sent
                                                                                                                                                                  +[75665] 2016/04/26 15:19:11.530644 [DBG] 127.0.0.1:6248 - rid:2 - Registering remote route "IRepas80TBwJByULX1ulAp"
                                                                                                                                                                  +[75665] 2016/04/26 15:19:11.530650 [DBG] 127.0.0.1:6248 - rid:2 - Route sent local subscriptions
                                                                                                                                                                  +
                                                                                                                                                                  +

                                                                                                                                                                  At this point, there is a full mesh cluster of NATS servers.

                                                                                                                                                                  +

                                                                                                                                                                  Testing the Cluster

                                                                                                                                                                  +

                                                                                                                                                                  Now, the following should work: make a subscription to Node A then publish to Node C. You should be able to to receive the message without problems.

                                                                                                                                                                  +
                                                                                                                                                                  nats-sub -s "nats://192.168.59.103:7222" hello &
                                                                                                                                                                  +
                                                                                                                                                                  +nats-pub -s "nats://192.168.59.105:7222" hello world
                                                                                                                                                                  +
                                                                                                                                                                  +[#1] Received on [hello] : 'world'
                                                                                                                                                                  +
                                                                                                                                                                  +# GNATSD on Node C logs:
                                                                                                                                                                  +[1] 2015/06/23 05:20:31.100032 [TRC] 192.168.59.103:7244 - rid:2 - <<- [MSG hello RSID:8:2 5]
                                                                                                                                                                  +
                                                                                                                                                                  +# GNATSD on Node A logs:
                                                                                                                                                                  +[1] 2015/06/23 05:20:31.100600 [TRC] 10.0.2.2:51007 - cid:8 - <<- [MSG hello 2 5]
                                                                                                                                                                  +
                                                                                                                                                                  + + +
                                                                                                                                                                  + +
                                                                                                                                                                  +
                                                                                                                                                                  +
                                                                                                                                                                  + +

                                                                                                                                                                  results matching ""

                                                                                                                                                                  +
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    + +

                                                                                                                                                                    No results matching ""

                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    + +
                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                    + + +
                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/configuration.html b/docs/nats_server/configuration.html new file mode 100644 index 0000000..f777924 --- /dev/null +++ b/docs/nats_server/configuration.html @@ -0,0 +1,2491 @@ + + + + + + + Configuration ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                    +
                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                    + +
                                                                                                                                                                    + +
                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                    +
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    + +
                                                                                                                                                                    + +

                                                                                                                                                                    Configuration File Format

                                                                                                                                                                    +

                                                                                                                                                                    While the NATS server has many flags that allow for simple testing of features, the NATS server products provide a flexible configuration format that combines the best of traditional formats and newer styles such as JSON and YAML.

                                                                                                                                                                    +

                                                                                                                                                                    The NATS configuration file supports the following syntax:

                                                                                                                                                                    +
                                                                                                                                                                      +
                                                                                                                                                                    • Lines can be commented with # and //
                                                                                                                                                                    • +
                                                                                                                                                                    • Values can be assigned to properties with:
                                                                                                                                                                        +
                                                                                                                                                                      • Equals sign: foo = 2
                                                                                                                                                                      • +
                                                                                                                                                                      • Colon: foo: 2
                                                                                                                                                                      • +
                                                                                                                                                                      • Whitespace: foo 2
                                                                                                                                                                      • +
                                                                                                                                                                      +
                                                                                                                                                                    • +
                                                                                                                                                                    • Arrays are enclosed in brackets: ["a", "b", "c"]
                                                                                                                                                                    • +
                                                                                                                                                                    • Maps are enclosed in braces: {foo: 2}
                                                                                                                                                                    • +
                                                                                                                                                                    • Maps can be assigned with no key separator
                                                                                                                                                                    • +
                                                                                                                                                                    • Semicolons can be used as terminators
                                                                                                                                                                    • +
                                                                                                                                                                    +

                                                                                                                                                                    Strings and Numbers

                                                                                                                                                                    +

                                                                                                                                                                    The configuration parser is very forgiving, as you have seen:

                                                                                                                                                                    +
                                                                                                                                                                      +
                                                                                                                                                                    • values can be a primitive, or a list, or a map
                                                                                                                                                                    • +
                                                                                                                                                                    • strings and numbers typically do the right thing
                                                                                                                                                                    • +
                                                                                                                                                                    +

                                                                                                                                                                    String values that start with a number can create issues. To force such values as strings, simply quote them.

                                                                                                                                                                    +

                                                                                                                                                                    BAD Config:

                                                                                                                                                                    +
                                                                                                                                                                    listen: 127.0.0.1:4222
                                                                                                                                                                    +authorization: {
                                                                                                                                                                    +    # BAD!
                                                                                                                                                                    +    token: 3secret
                                                                                                                                                                    +}
                                                                                                                                                                    +

                                                                                                                                                                    Fixed Config:

                                                                                                                                                                    +
                                                                                                                                                                    listen: 127.0.0.1:4222
                                                                                                                                                                    +authorization: {
                                                                                                                                                                    +    token: "3secret"
                                                                                                                                                                    +}
                                                                                                                                                                    +

                                                                                                                                                                    Variables

                                                                                                                                                                    +

                                                                                                                                                                    Server configurations can specify variables. Variables allow you to reference a value from one or more sections in the configuration.

                                                                                                                                                                    +

                                                                                                                                                                    Variables:

                                                                                                                                                                    +
                                                                                                                                                                      +
                                                                                                                                                                    • Are block scoped
                                                                                                                                                                    • +
                                                                                                                                                                    • Are referenced with a $ prefix.
                                                                                                                                                                    • +
                                                                                                                                                                    • Can be resolved from environment variables having the same name
                                                                                                                                                                    • +
                                                                                                                                                                    +
                                                                                                                                                                    +

                                                                                                                                                                    If the environment variable value begins with a number you may have trouble resolving it depending on the server version you are running.

                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    # Define a variable in the config
                                                                                                                                                                    +TOKEN: "secret"
                                                                                                                                                                    +
                                                                                                                                                                    +# Reference the variable
                                                                                                                                                                    +authorization {
                                                                                                                                                                    +    token: $TOKEN
                                                                                                                                                                    +}
                                                                                                                                                                    +

                                                                                                                                                                    A similar configuration, but this time, the value is in the environment:

                                                                                                                                                                    +
                                                                                                                                                                    # TOKEN should be defined in the environment
                                                                                                                                                                    +authorization {
                                                                                                                                                                    +    token: $TOKEN
                                                                                                                                                                    +}
                                                                                                                                                                    +

                                                                                                                                                                    export TOKEN="hello"; nats-server -c /config/file

                                                                                                                                                                    +

                                                                                                                                                                    Include Directive

                                                                                                                                                                    +

                                                                                                                                                                    The include directive allows you to split a server configuration into several files. This is useful for separating configuration into chunks that you can easily reuse between different servers.

                                                                                                                                                                    +

                                                                                                                                                                    Includes must use relative paths, and are relative to the main configuration (the one specified via the -c option):

                                                                                                                                                                    +

                                                                                                                                                                    server.conf:

                                                                                                                                                                    +
                                                                                                                                                                    listen: 127.0.0.1:4222
                                                                                                                                                                    +include ./auth.conf
                                                                                                                                                                    +
                                                                                                                                                                    +

                                                                                                                                                                    Note that include is not followed by = or :, as it is a directive.

                                                                                                                                                                    +
                                                                                                                                                                    +

                                                                                                                                                                    auth.conf:

                                                                                                                                                                    +
                                                                                                                                                                    authorization: {
                                                                                                                                                                    +    token: "f0oBar"
                                                                                                                                                                    +}
                                                                                                                                                                    +
                                                                                                                                                                    > nats-server -c server.conf
                                                                                                                                                                    +

                                                                                                                                                                    Configuration Properties

                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                    PropertyDescription
                                                                                                                                                                    authorizationconfiguration map for client authentication/authorization
                                                                                                                                                                    clusterconfiguration map for clustering configuration
                                                                                                                                                                    debugif true enable debug log messages
                                                                                                                                                                    gatewayGateway configuration map
                                                                                                                                                                    hosthost for client connections
                                                                                                                                                                    http_porthttp port for server monitoring
                                                                                                                                                                    https_porthttps port for server monitoring
                                                                                                                                                                    leafnodeLeafnode configuration map
                                                                                                                                                                    listenhost/port for client connections
                                                                                                                                                                    max_connectionsMaximum number of active client connections
                                                                                                                                                                    max_control_lineMaximum length of a protocol line (including subject length)
                                                                                                                                                                    max_payloadMaximum number of bytes in a message payload
                                                                                                                                                                    max_subscriptionsMaximum numbers of subscriptions for a client connection
                                                                                                                                                                    operatorpath to an operator JWT
                                                                                                                                                                    portport for client connections
                                                                                                                                                                    resolverResolver type MEMORY or URL for account JWTs
                                                                                                                                                                    tlsconfiguration map for tls for client and http monitoring
                                                                                                                                                                    traceif true enable protocol trace log messages
                                                                                                                                                                    write_deadlineMaximum number of seconds the server will block when writing a to a client (slow consumer)
                                                                                                                                                                    +

                                                                                                                                                                    Configuration Reloading

                                                                                                                                                                    +

                                                                                                                                                                    A server can reload most configuration changes without requiring a server restart or clients to disconnect by sending the nats-server a signal:

                                                                                                                                                                    +
                                                                                                                                                                    > nats-server --signal reload
                                                                                                                                                                    +
                                                                                                                                                                    + +
                                                                                                                                                                    + +
                                                                                                                                                                    +
                                                                                                                                                                    +
                                                                                                                                                                    + +

                                                                                                                                                                    results matching ""

                                                                                                                                                                    +
                                                                                                                                                                      + +
                                                                                                                                                                      +
                                                                                                                                                                      + +

                                                                                                                                                                      No results matching ""

                                                                                                                                                                      + +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                      + +
                                                                                                                                                                      +
                                                                                                                                                                      + +
                                                                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                                                                      + + +
                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/flags.html b/docs/nats_server/flags.html new file mode 100644 index 0000000..1930cd9 --- /dev/null +++ b/docs/nats_server/flags.html @@ -0,0 +1,2540 @@ + + + + + + + Flags ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      +
                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                      + +
                                                                                                                                                                      + +
                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                      +
                                                                                                                                                                      + +
                                                                                                                                                                      +
                                                                                                                                                                      + +
                                                                                                                                                                      + +

                                                                                                                                                                      Flags

                                                                                                                                                                      +

                                                                                                                                                                      The NATS server has many flags to customize its behaviour without having to write a configuration file.

                                                                                                                                                                      +

                                                                                                                                                                      The configuration flags revolve around:

                                                                                                                                                                      +
                                                                                                                                                                        +
                                                                                                                                                                      • Server Options
                                                                                                                                                                      • +
                                                                                                                                                                      • Logging
                                                                                                                                                                      • +
                                                                                                                                                                      • Authorization
                                                                                                                                                                      • +
                                                                                                                                                                      • TLS Security
                                                                                                                                                                      • +
                                                                                                                                                                      • Clustering
                                                                                                                                                                      • +
                                                                                                                                                                      • Information
                                                                                                                                                                      • +
                                                                                                                                                                      +

                                                                                                                                                                      Server Options

                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      FlagDescription
                                                                                                                                                                      -a, --addrHost address to bind to (default: 0.0.0.0 - all interfaces).
                                                                                                                                                                      -p, --portNATS client port (default: 4222).
                                                                                                                                                                      -P, --pidFile to store the process ID (PID).
                                                                                                                                                                      -m, --http_portHTTP port for monitoring dashboard (exclusive of --https_port).
                                                                                                                                                                      -ms, --https_portHTTPS port monitoring for monitoring dashboard (exclusive of --http_port).
                                                                                                                                                                      -c, --configPath to NATS server configuration file.
                                                                                                                                                                      -sl, --signalSend a signal to nats-server process. See process signaling.
                                                                                                                                                                      --client_advertiseClient HostPort to advertise to other servers.
                                                                                                                                                                      -tTest configuration and exit
                                                                                                                                                                      +

                                                                                                                                                                      Authentication Options

                                                                                                                                                                      +

                                                                                                                                                                      The following options control very simple authentication:

                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      FlagDescription
                                                                                                                                                                      --userRequired username for connections (exclusive of --token).
                                                                                                                                                                      --passRequired password for connections (exclusive of --token).
                                                                                                                                                                      --authRequired authorization token for connections (exclusive of --user and --password).
                                                                                                                                                                      +

                                                                                                                                                                      See token authentication, and username/password for more information.

                                                                                                                                                                      +

                                                                                                                                                                      Logging Options

                                                                                                                                                                      +

                                                                                                                                                                      The following flags are available on the server to configure logging:

                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      FlagDescription
                                                                                                                                                                      -l, --logFile to redirect log output
                                                                                                                                                                      -T, --logtimeSpecify -T=false to disable timestamping log entries
                                                                                                                                                                      -s, --syslogLog to syslog or windows event log
                                                                                                                                                                      -r, --remote_syslogThe syslog server address, like udp://localhost:514
                                                                                                                                                                      -D, --debugEnable debugging output
                                                                                                                                                                      -V, --traceEnable protocol trace log messages
                                                                                                                                                                      -DVEnable both debug and protocol trace messages
                                                                                                                                                                      +

                                                                                                                                                                      You can read more about logging configuration here.

                                                                                                                                                                      +

                                                                                                                                                                      TLS Options

                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      FlagDescription
                                                                                                                                                                      --tlsEnable TLS, do not verify clients
                                                                                                                                                                      --tlscertServer certificate file
                                                                                                                                                                      --tlskeyPrivate key for server certificate
                                                                                                                                                                      --tlsverifyEnable client TLS certificate verification
                                                                                                                                                                      --tlscacertClient certificate CA for verification
                                                                                                                                                                      +

                                                                                                                                                                      Cluster Options

                                                                                                                                                                      +

                                                                                                                                                                      The following flags are available on the server to configure clustering:

                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      FlagDescription
                                                                                                                                                                      --routesComma separated list of cluster URLs to solicit and connect
                                                                                                                                                                      --clusterCluster URL for clustering requests
                                                                                                                                                                      --no_advertiseDo not advertise known cluster information to clients
                                                                                                                                                                      --cluster_advertiseCluster URL to advertise to other servers
                                                                                                                                                                      --connect_retriesFor implicit routes, number of connect retries
                                                                                                                                                                      +

                                                                                                                                                                      You can read more about clustering configuration here.

                                                                                                                                                                      +

                                                                                                                                                                      Common Options

                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                      FlagDescription
                                                                                                                                                                      -h, --helpShow this message
                                                                                                                                                                      -v, --versionShow version
                                                                                                                                                                      --help_tlsTLS help
                                                                                                                                                                      + + +
                                                                                                                                                                      + +
                                                                                                                                                                      +
                                                                                                                                                                      +
                                                                                                                                                                      + +

                                                                                                                                                                      results matching ""

                                                                                                                                                                      +
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        + +

                                                                                                                                                                        No results matching ""

                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                        + + +
                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/installation.html b/docs/nats_server/installation.html new file mode 100644 index 0000000..202e8d8 --- /dev/null +++ b/docs/nats_server/installation.html @@ -0,0 +1,2363 @@ + + + + + + + Installing ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                        +
                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                        + +
                                                                                                                                                                        + +
                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        + +

                                                                                                                                                                        NATS Server Installation

                                                                                                                                                                        +

                                                                                                                                                                        NATS philosophy is simplicity. Installation is just decompression a zip file and copying the binary to an appropiate directory; you can also use your favorite package manager.

                                                                                                                                                                        +

                                                                                                                                                                        Installing via a Package Manager

                                                                                                                                                                        +

                                                                                                                                                                        On Windows:

                                                                                                                                                                        +
                                                                                                                                                                        > choco install nats-server
                                                                                                                                                                        +

                                                                                                                                                                        On Mac OS:

                                                                                                                                                                        +
                                                                                                                                                                        > brew install nats-server
                                                                                                                                                                        +

                                                                                                                                                                        Via Docker:

                                                                                                                                                                        +
                                                                                                                                                                        > docker pull nats-server:latest
                                                                                                                                                                        +

                                                                                                                                                                        Installing A Release Build

                                                                                                                                                                        +

                                                                                                                                                                        You can find the latest release of nats-server here.

                                                                                                                                                                        +

                                                                                                                                                                        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:

                                                                                                                                                                        +
                                                                                                                                                                        > 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
                                                                                                                                                                        +
                                                                                                                                                                        +> unzip nats-server.zip -d nats-server
                                                                                                                                                                        +Archive:  nats-server.zip
                                                                                                                                                                        +   creating: nats-server-v2.0.0-darwin-amd64/
                                                                                                                                                                        +  inflating: nats-server-v2.0.0-darwin-amd64/README.md
                                                                                                                                                                        +  inflating: nats-server-v2.0.0-darwin-amd64/LICENSE
                                                                                                                                                                        +  inflating: nats-server-v2.0.0darwin-amd64/nats-server
                                                                                                                                                                        +
                                                                                                                                                                        +> cp nats-server-v2.0.0darwin-amd64/nats-server /usr/local/bin
                                                                                                                                                                        +

                                                                                                                                                                        Installing from the source

                                                                                                                                                                        +

                                                                                                                                                                        If you have go installed, installing the binary is easy:

                                                                                                                                                                        +
                                                                                                                                                                        > go get github.com/nats-io/nats-server
                                                                                                                                                                        +

                                                                                                                                                                        This mechanism will install a build of master, 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.

                                                                                                                                                                        +

                                                                                                                                                                        Testing Your Installation

                                                                                                                                                                        +

                                                                                                                                                                        To test your installation (provided the executable is visible to your shell):

                                                                                                                                                                        +
                                                                                                                                                                        > nats-server
                                                                                                                                                                        +[41634] 2019/05/13 09:42:11.745919 [INF] Starting nats-server version 2.0.0
                                                                                                                                                                        +[41634] 2019/05/13 09:42:11.746240 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                        +...
                                                                                                                                                                        +[41634] 2019/05/13 09:42:11.746249 [INF] Server id is NBNYNR4ZNTH4N2UQKSAAKBAFLDV3PZO4OUYONSUIQASTQT7BT4ZF6WX7
                                                                                                                                                                        +[41634] 2019/05/13 09:42:11.746252 [INF] Server is ready
                                                                                                                                                                        +
                                                                                                                                                                        + +
                                                                                                                                                                        + +
                                                                                                                                                                        +
                                                                                                                                                                        +
                                                                                                                                                                        + +

                                                                                                                                                                        results matching ""

                                                                                                                                                                        +
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          + +

                                                                                                                                                                          No results matching ""

                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          + +
                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                          + + +
                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/jwt_auth.html b/docs/nats_server/jwt_auth.html new file mode 100644 index 0000000..2af2941 --- /dev/null +++ b/docs/nats_server/jwt_auth.html @@ -0,0 +1,2391 @@ + + + + + + + Accounts ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                          +
                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                          + +
                                                                                                                                                                          + +
                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                          +
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          + +
                                                                                                                                                                          + +

                                                                                                                                                                          Accounts

                                                                                                                                                                          +

                                                                                                                                                                          Accounts expand on the NKEY authentication foundation and recasts client authentication and authorization from a server configuration to a distributed and delegated authentication and authorization model.

                                                                                                                                                                          +

                                                                                                                                                                          With other authentication mechanisms, all clients can publish and subscribe to anything unless explicitly configured otherwise. To protect clients and information, you have to carefully carve the subject space and permission clients.

                                                                                                                                                                          +

                                                                                                                                                                          Each account is isolated from other accounts, thus enabling multi-tenancy in the server. With accounts, the subject space is not globally shared, greatly simplifying the messaging environment. Instead of devising complicated subject name carving patterns, clients can use short subjects without explicit authorization rules.

                                                                                                                                                                          +

                                                                                                                                                                          Messaging exchange between different accounts is enabled by exporting streams and services from one account and importing them into another. When an export is sensitive, the export can require a constraint that authorization for its import be provided. Thus it is easy to audit exporters and limit importers. Best of all, each account is in full control of what is exported or imported and from whom.

                                                                                                                                                                          +
                                                                                                                                                                          +

                                                                                                                                                                          While the name account implies one or more users, it is much simpler and enlightening to think of one account as a messaging container for one application. Users in the account are simply the minimum number of services that must work together to provide some functionality. +In simpler terms, more accounts with few (even one) clients is a better design topology than a large account with many users with complex authorization configuration.

                                                                                                                                                                          +
                                                                                                                                                                          +

                                                                                                                                                                          Accounts leverage JSON Web Tokens (JWT) to describe the various entities supported. When a client connects, servers query for account JWTs and validate a trust chain. Users are not directly tracked by the server, but rather verified as belonging to an account. This enables the managing of users without requiring server configuration updates.

                                                                                                                                                                          +

                                                                                                                                                                          Effectively, Accounts provide for a distributed configuration paradigm. Previously each user (or client) needed to be known and authorized a priori in the server’s configuration requiring an administrator to modify and update server configurations. Accounts eliminate these chores.

                                                                                                                                                                          +

                                                                                                                                                                          JSON Web Tokens

                                                                                                                                                                          +

                                                                                                                                                                          JSON Web Tokens (JWT) are an open and industry standard RFC7519 method for representing claims securely between two parties.

                                                                                                                                                                          +

                                                                                                                                                                          Claims are a fancy way of asserting information on a subject. In this context, a subject is the entity being described (not a messaging subject). Standard JWT claims are typically digitally signed and verified.

                                                                                                                                                                          +

                                                                                                                                                                          NATS further restricts JWTs by requiring that JWTs be:

                                                                                                                                                                          +
                                                                                                                                                                            +
                                                                                                                                                                          • Digitally signed always and only using Ed25519.
                                                                                                                                                                          • +
                                                                                                                                                                          • NATS adopts the convention that all Issuer and Subject fields in a JWT claim must be a public NKEY.
                                                                                                                                                                          • +
                                                                                                                                                                          • It also introduces type requirements into claims, enabling the pairing of specific roles matching those supported by NKeys.
                                                                                                                                                                          • +
                                                                                                                                                                          +

                                                                                                                                                                          NKey Roles

                                                                                                                                                                          +

                                                                                                                                                                          NKey Roles are:

                                                                                                                                                                          +
                                                                                                                                                                            +
                                                                                                                                                                          • Operators
                                                                                                                                                                          • +
                                                                                                                                                                          • Accounts
                                                                                                                                                                          • +
                                                                                                                                                                          • Users
                                                                                                                                                                          • +
                                                                                                                                                                          +

                                                                                                                                                                          Roles are hierarchical and form a chain of trust. Operators issue Accounts which in turn issue Users. Servers trust specific Operators. If an account is issued by an operator that is trusted, account users are trusted.

                                                                                                                                                                          +

                                                                                                                                                                          The Authentication Process

                                                                                                                                                                          +

                                                                                                                                                                          When a User connects to a server, it presents a JWT issued by its Account. The user proves its identity by signing a server-issued cryptographic challenge with its private key. The signature verification validates that the signature is attributable to the user's public key. Next, the server retrieves the associated account JWT that issued the user. It verifies the User issuer matches the referenced account. Finally, the server checks that a trusted Operator issued the Account, completing the trust chain verification.

                                                                                                                                                                          +

                                                                                                                                                                          The Authorization Process

                                                                                                                                                                          +

                                                                                                                                                                          From an authorization point of view, the Account provides information on messaging subjects that are imported from other accounts (including any ancillary related authorization) as well as messaging subjects exported to other accounts. Accounts can also bear limits, such as the maximum number of connections they may have. A user JWT can express restrictions on the messaging subjects that it can publish or subscribe to.

                                                                                                                                                                          +

                                                                                                                                                                          When a new user is added to an account, the account configuration need not change, as each user can and should have its own user JWT that can be verified by simply resolving its parent account.

                                                                                                                                                                          +

                                                                                                                                                                          JWTs and Privacy

                                                                                                                                                                          +

                                                                                                                                                                          One crucial detail to keep in mind is that while in other systems JWTs are used as sessions or proof of authentication, NATS JWTs are only used as configuration describing:

                                                                                                                                                                          +
                                                                                                                                                                            +
                                                                                                                                                                          • the public ID of the entity
                                                                                                                                                                          • +
                                                                                                                                                                          • the public ID of the entity that issued it
                                                                                                                                                                          • +
                                                                                                                                                                          • capabilities of the entity
                                                                                                                                                                          • +
                                                                                                                                                                          +

                                                                                                                                                                          Authentication is a public key cryptographic process — a client signs a nonce proving identity while the trust chain and configuration provides the authorization.

                                                                                                                                                                          +

                                                                                                                                                                          The server is never aware of private keys but can verify that a signer or issuer indeed matches a specified or known public key.

                                                                                                                                                                          +

                                                                                                                                                                          Lastly, all NATS JWTs (Operators, Accounts, Users and others) are expected to be signed using the Ed25519 algorithm. If they are not, they are rejected by the system.

                                                                                                                                                                          +

                                                                                                                                                                          Sharing Between Accounts

                                                                                                                                                                          +

                                                                                                                                                                          While accounts provide isolation, there are many cases where you want to be able to consume messages produced by one account in another. There are two kinds of shares that an account can export:

                                                                                                                                                                          +
                                                                                                                                                                            +
                                                                                                                                                                          • Streams
                                                                                                                                                                          • +
                                                                                                                                                                          • Services
                                                                                                                                                                          • +
                                                                                                                                                                          +

                                                                                                                                                                          Streams are messages published by a foreign account; Subscribers in an importing account can receive messages from a stream exported by another.

                                                                                                                                                                          +

                                                                                                                                                                          Services are endpoints exported by a foreign account; Requesters importing the service can publish requests to the exported endpoint.

                                                                                                                                                                          +

                                                                                                                                                                          Streams and Services can be public; Public exports can be imported by any account. Or they can be private. Private streams and services require an authorization token from the exporting account that authorizes the foreign account to import the stream or service.

                                                                                                                                                                          +

                                                                                                                                                                          An importing account can remap the subject where a stream subscriber will receive messages or where a service requestor can make requests. This enables the importing account to simplify their subject space.

                                                                                                                                                                          +

                                                                                                                                                                          Exports and imports from an account are explicit, and they are visible in the account's JWT. For private exports, the import will embed an authorization token or a URL storing the token. Imports and exports make it easy to audit where data is coming or going.

                                                                                                                                                                          +

                                                                                                                                                                          Configuration

                                                                                                                                                                          +

                                                                                                                                                                          Entity JWT configuration is done using the nsc tool. The basic steps include:

                                                                                                                                                                          + +

                                                                                                                                                                          After that, nsc is used to create and edit accounts and users.

                                                                                                                                                                          + + +
                                                                                                                                                                          + +
                                                                                                                                                                          +
                                                                                                                                                                          +
                                                                                                                                                                          + +

                                                                                                                                                                          results matching ""

                                                                                                                                                                          +
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            + +

                                                                                                                                                                            No results matching ""

                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            + +
                                                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                                                            + + +
                                                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/logging.html b/docs/nats_server/logging.html new file mode 100644 index 0000000..a46fe1d --- /dev/null +++ b/docs/nats_server/logging.html @@ -0,0 +1,2388 @@ + + + + + + + Logging ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                            +
                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                            + +
                                                                                                                                                                            + +
                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                            +
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            + +
                                                                                                                                                                            + +

                                                                                                                                                                            Configuring Logging

                                                                                                                                                                            +

                                                                                                                                                                            The NATS server provides various logging options that you can set via the command line or the configuration file.

                                                                                                                                                                            +

                                                                                                                                                                            Command Line Options

                                                                                                                                                                            +

                                                                                                                                                                            The following logging operations are supported:

                                                                                                                                                                            +
                                                                                                                                                                            -l, --log FILE                   File to redirect log output.
                                                                                                                                                                            +-T, --logtime                    Timestamp log entries (default is true).
                                                                                                                                                                            +-s, --syslog                     Enable syslog as log method.
                                                                                                                                                                            +-r, --remote_syslog              Syslog server address.
                                                                                                                                                                            +-D, --debug                      Enable debugging output.
                                                                                                                                                                            +-V, --trace                      Trace the raw protocol.
                                                                                                                                                                            +-DV                              Debug and Trace.
                                                                                                                                                                            +

                                                                                                                                                                            Debug and trace

                                                                                                                                                                            +

                                                                                                                                                                            The -DV flag enables trace and debug for the server.

                                                                                                                                                                            +
                                                                                                                                                                            nats-server -DV -m 8222 -user foo -pass bar
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            Log file redirect

                                                                                                                                                                            +
                                                                                                                                                                            nats-server -DV -m 8222 -l nats.log
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            Timestamp

                                                                                                                                                                            +

                                                                                                                                                                            If -T false then log entries are not timestamped. Default is true.

                                                                                                                                                                            +

                                                                                                                                                                            Syslog

                                                                                                                                                                            +

                                                                                                                                                                            You can configure syslog with UDP:

                                                                                                                                                                            +
                                                                                                                                                                            nats-server -s udp://localhost:514
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            or syslog:

                                                                                                                                                                            +
                                                                                                                                                                            nats-server -r syslog://<hostname>:<port>
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            For example:

                                                                                                                                                                            +
                                                                                                                                                                            syslog://logs.papertrailapp.com:26900
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            Using the Configuration File

                                                                                                                                                                            +

                                                                                                                                                                            All of these settings are available in the configuration file as well.

                                                                                                                                                                            +
                                                                                                                                                                            debug:   false
                                                                                                                                                                            +trace:   true
                                                                                                                                                                            +logtime: false
                                                                                                                                                                            +log_file: "/tmp/nats-server.log"
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            Log Rotation with logrotate

                                                                                                                                                                            +

                                                                                                                                                                            NATS server does not provide tools to manage log files, but it does include mechanisms that make log rotation simple. We can use this mechanism with logrotate; a simple standard Linux utility to rotate logs available on most distributions like Debian, Ubuntu, RedHat (CentOS), etc.

                                                                                                                                                                            +

                                                                                                                                                                            For example, you could configure logrotate with:

                                                                                                                                                                            +
                                                                                                                                                                            /path/to/nats-server.log {
                                                                                                                                                                            +    daily
                                                                                                                                                                            +    rotate 30
                                                                                                                                                                            +    compress
                                                                                                                                                                            +    missingok
                                                                                                                                                                            +    notifempty
                                                                                                                                                                            +    postrotate
                                                                                                                                                                            +        kill -SIGUSR1 `cat /var/run/nats-server.pid`
                                                                                                                                                                            +    endscript
                                                                                                                                                                            +}
                                                                                                                                                                            +
                                                                                                                                                                            +

                                                                                                                                                                            The first line specifies the location that the subsequent lines will apply to.

                                                                                                                                                                            +

                                                                                                                                                                            The rest of the file specifies that the logs will rotate daily ("daily" option) and that 30 older copies will be preserved ("rotate" option). Other options are described in logrorate documentation.

                                                                                                                                                                            +

                                                                                                                                                                            The "postrotate" section tells NATS server to reload the log files once the rotation is complete. The command kill -SIGUSR1 `cat /var/run/nats-server.pid` does not kill the NATS server process, but instead sends it a signal causing it to reload its log files. This will cause new requests to be logged to the refreshed log file.

                                                                                                                                                                            +

                                                                                                                                                                            The /var/run/nats-server.pid file is where NATS server stores the master process's pid.

                                                                                                                                                                            +

                                                                                                                                                                            Some Logging Notes

                                                                                                                                                                            +
                                                                                                                                                                              +
                                                                                                                                                                            • The NATS Server, in verbose mode, will log the receipt of UNSUB messages, but this does not indicate the subscription is gone, only that the message was received. The DELSUB message in the log can be used to determine when the actual subscription removal has taken place.
                                                                                                                                                                            • +
                                                                                                                                                                            + + +
                                                                                                                                                                            + +
                                                                                                                                                                            +
                                                                                                                                                                            +
                                                                                                                                                                            + +

                                                                                                                                                                            results matching ""

                                                                                                                                                                            +
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              + +

                                                                                                                                                                              No results matching ""

                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              + +
                                                                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                                                                              + + +
                                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/monitoring.html b/docs/nats_server/monitoring.html new file mode 100644 index 0000000..9db5ead --- /dev/null +++ b/docs/nats_server/monitoring.html @@ -0,0 +1,2471 @@ + + + + + + + Monitoring ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                              +
                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                              + +
                                                                                                                                                                              + +
                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                              +
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              + +
                                                                                                                                                                              + +

                                                                                                                                                                              Monitoring

                                                                                                                                                                              +

                                                                                                                                                                              To monitor the NATS messaging system, gnatsd provides a lightweight HTTP server on a dedicated monitoring port. The monitoring server provides several endpoints, including varz, connz, routez, and subsz. All endpoints return a JSON object.

                                                                                                                                                                              +

                                                                                                                                                                              The NATS monitoring endpoints support JSONP and CORS, making it easy to create single page monitoring web applications.

                                                                                                                                                                              +

                                                                                                                                                                              Enabling monitoring

                                                                                                                                                                              +

                                                                                                                                                                              To enable the monitoring server, start the NATS server with the monitoring flag -m and the monitoring port, or turn it on in the configuration file.

                                                                                                                                                                              +
                                                                                                                                                                              -m, --http_port PORT             HTTP PORT for monitoring
                                                                                                                                                                              +-ms,--https_port PORT            Use HTTPS PORT for monitoring
                                                                                                                                                                              +

                                                                                                                                                                              Example:

                                                                                                                                                                              +
                                                                                                                                                                              $ gnatsd -m 8222
                                                                                                                                                                              +[4528] 2015/08/19 20:09:58.572939 [INF] Starting gnatsd version 0.8.0
                                                                                                                                                                              +[4528] 2015/08/19 20:09:58.573007 [INF] Starting http monitor on port 8222
                                                                                                                                                                              +[4528] 2015/08/19 20:09:58.573071 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                              +[4528] 2015/08/19 20:09:58.573090 [INF] gnatsd is ready</td>
                                                                                                                                                                              +
                                                                                                                                                                              +

                                                                                                                                                                              To test, run gnatsd -m 8222, then go to http://localhost:8222/

                                                                                                                                                                              +

                                                                                                                                                                              Monitoring endpoints

                                                                                                                                                                              +

                                                                                                                                                                              The following sections describe each supported monitoring endpoint: varz, connz, routez, and subsz.

                                                                                                                                                                              +

                                                                                                                                                                              /varz

                                                                                                                                                                              +

                                                                                                                                                                              The endpoint http://localhost:8222/varz reports various general statistics.

                                                                                                                                                                              +
                                                                                                                                                                              {
                                                                                                                                                                              +  "server_id": "ec933edcd2bd86bcf71d555fc8b4fb2c",
                                                                                                                                                                              +  "version": "0.6.6",
                                                                                                                                                                              +  "go": "go1.5.0",
                                                                                                                                                                              +  "host": "0.0.0.0",
                                                                                                                                                                              +  "port": 4222,
                                                                                                                                                                              +  "auth_required": false,
                                                                                                                                                                              +  "ssl_required": false,
                                                                                                                                                                              +  "max_payload": 1048576,
                                                                                                                                                                              +  "max_connections": 65536,
                                                                                                                                                                              +  "ping_interval": 120000000000,
                                                                                                                                                                              +  "ping_max": 2,
                                                                                                                                                                              +  "http_port": 8222,
                                                                                                                                                                              +  "ssl_timeout": 0.5,
                                                                                                                                                                              +  "max_control_line": 1024,
                                                                                                                                                                              +  "start": "2015-07-14T13:29:26.426805508-07:00",
                                                                                                                                                                              +  "now": "2015-07-14T13:30:59.349179963-07:00",
                                                                                                                                                                              +  "uptime": "1m33s",
                                                                                                                                                                              +  "mem": 8445952,
                                                                                                                                                                              +  "cores": 4,
                                                                                                                                                                              +  "cpu": 0,
                                                                                                                                                                              +  "connections": 39,
                                                                                                                                                                              +  "routes": 0,
                                                                                                                                                                              +  "remotes": 0,
                                                                                                                                                                              +  "in_msgs": 100000,
                                                                                                                                                                              +  "out_msgs": 100000,
                                                                                                                                                                              +  "in_bytes": 1600000,
                                                                                                                                                                              +  "out_bytes": 1600000,
                                                                                                                                                                              +  "slow_consumers": 0
                                                                                                                                                                              +}
                                                                                                                                                                              +
                                                                                                                                                                              +

                                                                                                                                                                              /connz

                                                                                                                                                                              +

                                                                                                                                                                              The endpoint http://localhost:8222/connz reports more detailed information on current connections. It uses a paging mechanism which defaults to 1024 connections.

                                                                                                                                                                              +

                                                                                                                                                                              You can control these via URL arguments (limit and offset). For example: http://localhost:8222/connz?limit=1&offset=1.

                                                                                                                                                                              +

                                                                                                                                                                              You can also report detailed subscription information on a per connection basis using subs=1. For example: http://localhost:8222/connz?limit=1&offset=1&subs=1.

                                                                                                                                                                              +
                                                                                                                                                                              {
                                                                                                                                                                              +  "now": "2015-07-14T13:30:59.349179963-07:00",
                                                                                                                                                                              +  "num_connections": 2,
                                                                                                                                                                              +  "offset": 0,
                                                                                                                                                                              +  "limit": 1024,
                                                                                                                                                                              +  "connections": [
                                                                                                                                                                              +    {
                                                                                                                                                                              +      "cid": 571,
                                                                                                                                                                              +      "ip": "127.0.0.1",
                                                                                                                                                                              +      "port": 61572,
                                                                                                                                                                              +      "pending_size": 0,
                                                                                                                                                                              +      "in_msgs": 0,
                                                                                                                                                                              +      "out_msgs": 0,
                                                                                                                                                                              +      "in_bytes": 0,
                                                                                                                                                                              +      "out_bytes": 0,
                                                                                                                                                                              +      "subscriptions": 1,
                                                                                                                                                                              +      "lang": "go",
                                                                                                                                                                              +      "version": "1.0.9",
                                                                                                                                                                              +      "subscriptions_list": [
                                                                                                                                                                              +        "hello.world"
                                                                                                                                                                              +      ]
                                                                                                                                                                              +    },
                                                                                                                                                                              +    {
                                                                                                                                                                              +      "cid": 574,
                                                                                                                                                                              +      "ip": "127.0.0.1",
                                                                                                                                                                              +      "port": 61577,
                                                                                                                                                                              +      "pending_size": 0,
                                                                                                                                                                              +      "in_msgs": 0,
                                                                                                                                                                              +      "out_msgs": 0,
                                                                                                                                                                              +      "in_bytes": 0,
                                                                                                                                                                              +      "out_bytes": 0,
                                                                                                                                                                              +      "subscriptions": 1,
                                                                                                                                                                              +      "lang": "ruby",
                                                                                                                                                                              +      "version": "0.5.0",
                                                                                                                                                                              +      "subscriptions_list": [
                                                                                                                                                                              +        "hello.world"
                                                                                                                                                                              +      ]
                                                                                                                                                                              +    }
                                                                                                                                                                              +  ]
                                                                                                                                                                              +}
                                                                                                                                                                              +
                                                                                                                                                                              +

                                                                                                                                                                              /routez

                                                                                                                                                                              +

                                                                                                                                                                              The endpoint http://localhost:8222/routez reports information on active routes for a cluster. Routes are expected to be low, so there is no paging mechanism with this endpoint.

                                                                                                                                                                              +

                                                                                                                                                                              The routez endpoint does support the subs argument from the /connz endpoint. For example: http://localhost:8222/routez?subs=1

                                                                                                                                                                              +
                                                                                                                                                                              {
                                                                                                                                                                              +  "now": "2015-07-14T13:30:59.349179963-07:00",
                                                                                                                                                                              +  "num_routes": 1,
                                                                                                                                                                              +  "routes": [
                                                                                                                                                                              +    {
                                                                                                                                                                              +      "rid": 1,
                                                                                                                                                                              +      "remote_id": "de475c0041418afc799bccf0fdd61b47",
                                                                                                                                                                              +      "did_solicit": true,
                                                                                                                                                                              +      "ip": "127.0.0.1",
                                                                                                                                                                              +      "port": 61791,
                                                                                                                                                                              +      "pending_size": 0,
                                                                                                                                                                              +      "in_msgs": 0,
                                                                                                                                                                              +      "out_msgs": 0,
                                                                                                                                                                              +      "in_bytes": 0,
                                                                                                                                                                              +      "out_bytes": 0,
                                                                                                                                                                              +      "subscriptions": 0
                                                                                                                                                                              +    }
                                                                                                                                                                              +  ]
                                                                                                                                                                              +}
                                                                                                                                                                              +
                                                                                                                                                                              +

                                                                                                                                                                              /subsz

                                                                                                                                                                              +

                                                                                                                                                                              The endpoint http://localhost:8222/subz reports detailed information about the current subscriptions and the routing data structure.

                                                                                                                                                                              +
                                                                                                                                                                              {
                                                                                                                                                                              +  "num_subscriptions": 3,
                                                                                                                                                                              +  "num_cache": 0,
                                                                                                                                                                              +  "num_inserts": 572,
                                                                                                                                                                              +  "num_removes": 569,
                                                                                                                                                                              +  "num_matches": 200000,
                                                                                                                                                                              +  "cache_hit_rate": 0.99999,
                                                                                                                                                                              +  "max_fanout": 0,
                                                                                                                                                                              +  "avg_fanout": 0,
                                                                                                                                                                              +  "stats_time": "2015-07-14T12:55:25.564818051-07:00"
                                                                                                                                                                              +}
                                                                                                                                                                              +
                                                                                                                                                                              +

                                                                                                                                                                              Creating monitoring applications

                                                                                                                                                                              +

                                                                                                                                                                              NATS monitoring endpoints support JSONP and CORS. You can easily create single page web applications for monitoring. To do this you simply pass the callback query parameter to any endpoint.

                                                                                                                                                                              +

                                                                                                                                                                              For example:

                                                                                                                                                                              +
                                                                                                                                                                              http://localhost:8222/connz?callback=cb
                                                                                                                                                                              +
                                                                                                                                                                              +

                                                                                                                                                                              Here is a JQuery example implementation:

                                                                                                                                                                              +
                                                                                                                                                                              $.getJSON('http://localhost:8222/connz?callback=?', function(data) {
                                                                                                                                                                              +  console.log(data);
                                                                                                                                                                              +});
                                                                                                                                                                              +
                                                                                                                                                                              + + +
                                                                                                                                                                              + +
                                                                                                                                                                              +
                                                                                                                                                                              +
                                                                                                                                                                              + +

                                                                                                                                                                              results matching ""

                                                                                                                                                                              +
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + +

                                                                                                                                                                                No results matching ""

                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + +
                                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                                + + +
                                                                                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/nkey_auth.html b/docs/nats_server/nkey_auth.html new file mode 100644 index 0000000..da08756 --- /dev/null +++ b/docs/nats_server/nkey_auth.html @@ -0,0 +1,2376 @@ + + + + + + + NKeys ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                +
                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                + +
                                                                                                                                                                                + +
                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                +
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                + +
                                                                                                                                                                                + +

                                                                                                                                                                                NKey Authentication

                                                                                                                                                                                +

                                                                                                                                                                                NKeys are a new highly secure public-key signature system based on Ed25519.

                                                                                                                                                                                +

                                                                                                                                                                                With NKeys the server can verify identities without ever storing secrets on the server. The authentication system works by requiring a connecting client to provide its public key and digitally sign a challenge with its private key. The server generates a random challenge with every connection request, making it immune to playback attacks. The generated signature is validated against the provided public key, thus proving the identity of the client. If the public key is known to the server, authentication succeeds.

                                                                                                                                                                                +
                                                                                                                                                                                +

                                                                                                                                                                                NKey is an awesome replacement for token authentication, because a connecting client will have to prove it controls the private key for the authorized public key.

                                                                                                                                                                                +
                                                                                                                                                                                +

                                                                                                                                                                                To generate nkeys, you'll need the nk tool.

                                                                                                                                                                                +

                                                                                                                                                                                Generating NKeys and Configuring the Server

                                                                                                                                                                                +

                                                                                                                                                                                To generate a User NKEY:

                                                                                                                                                                                +
                                                                                                                                                                                > nk -gen user -pubout
                                                                                                                                                                                +SUACSSL3UAHUDXKFSNVUZRF5UHPMWZ6BFDTJ7M6USDXIEDNPPQYYYCU3VY
                                                                                                                                                                                +UDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4
                                                                                                                                                                                +

                                                                                                                                                                                The first output line starts with the letter S for Seed. The second letter U stands for User. Seeds are private keys; you should treat them as secrets and guard them with care.

                                                                                                                                                                                +

                                                                                                                                                                                The second line starts with the letter U for User, and is a public key which can be safely shared.

                                                                                                                                                                                +

                                                                                                                                                                                To use nkey authentication, add a user and set the nkey property to the public key of the user you want to authenticate:

                                                                                                                                                                                +
                                                                                                                                                                                authorization: {
                                                                                                                                                                                +  users: [
                                                                                                                                                                                +    { nkey: UDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4 }
                                                                                                                                                                                +  ]
                                                                                                                                                                                +}
                                                                                                                                                                                +
                                                                                                                                                                                +

                                                                                                                                                                                Note that the user section sets the nkey property (user/password/token properties are not needed). Add permission sections as required.

                                                                                                                                                                                +

                                                                                                                                                                                Client Configuration

                                                                                                                                                                                +

                                                                                                                                                                                Now that you have a user nkey let's configure a client to use it for authentication. As an example, here are the connect options for the node client:

                                                                                                                                                                                +
                                                                                                                                                                                const NATS = require(‘nats‘);
                                                                                                                                                                                +const nkeys = require('ts-nkeys’);
                                                                                                                                                                                +
                                                                                                                                                                                +const nkey_seed =SUACSSL3UAHUDXKFSNVUZRF5UHPMWZ6BFDTJ7M6USDXIEDNPPQYYYCU3VY;
                                                                                                                                                                                +const nc = NATS.connect({
                                                                                                                                                                                +  port: PORT,
                                                                                                                                                                                +  nkey: 'UDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4',
                                                                                                                                                                                +  sigCB: function (nonce) {
                                                                                                                                                                                +    // client loads seed safely from a file
                                                                                                                                                                                +    // or some constant like `nkey_seed` defined in
                                                                                                                                                                                +    // the program
                                                                                                                                                                                +    const sk = nkeys.fromSeed(Buffer.from(nkey_seed));
                                                                                                                                                                                +    return sk.sign(nonce);
                                                                                                                                                                                +   }
                                                                                                                                                                                +});
                                                                                                                                                                                +...
                                                                                                                                                                                +
                                                                                                                                                                                +

                                                                                                                                                                                The client provides a function that it uses to parse the seed (the private key) and sign the connection challenge.

                                                                                                                                                                                +

                                                                                                                                                                                Other NATS tooling such as nats-pub and nats-sub can directly use nkeys:

                                                                                                                                                                                +
                                                                                                                                                                                nats-sub -nkey /path/to/file/storing/seed ">"
                                                                                                                                                                                +
                                                                                                                                                                                +

                                                                                                                                                                                For examples using other supported clients, please visit +our documentation portal

                                                                                                                                                                                + + +
                                                                                                                                                                                + +
                                                                                                                                                                                +
                                                                                                                                                                                +
                                                                                                                                                                                + +

                                                                                                                                                                                results matching ""

                                                                                                                                                                                +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +

                                                                                                                                                                                  No results matching ""

                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +
                                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                                  + + +
                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/running.html b/docs/nats_server/running.html new file mode 100644 index 0000000..b288a55 --- /dev/null +++ b/docs/nats_server/running.html @@ -0,0 +1,2352 @@ + + + + + + + Running ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                  + +
                                                                                                                                                                                  + +
                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +
                                                                                                                                                                                  + +

                                                                                                                                                                                  Running

                                                                                                                                                                                  +

                                                                                                                                                                                  The nats-server has many command line options. To get started, you don't have to specify anything. +In the absence of any flags, the NATS server will start listening for NATS client connections on port 4222. +By default, security is not enabled.

                                                                                                                                                                                  +

                                                                                                                                                                                  Standalone

                                                                                                                                                                                  +

                                                                                                                                                                                  When the server starts it will print some information including where the server is listening for client connections:

                                                                                                                                                                                  +
                                                                                                                                                                                  > nats-server
                                                                                                                                                                                  +[41634] 2019/05/13 09:42:11.745919 [INF] Starting nats-server version 2.0.0
                                                                                                                                                                                  +[41634] 2019/05/13 09:42:11.746240 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                                  +...
                                                                                                                                                                                  +[41634] 2019/05/13 09:42:11.746249 [INF] Server id is NBNYNR4ZNTH4N2UQKSAAKBAFLDV3PZO4OUYONSUIQASTQT7BT4ZF6WX7
                                                                                                                                                                                  +[41634] 2019/05/13 09:42:11.746252 [INF] Server is ready
                                                                                                                                                                                  +

                                                                                                                                                                                  Docker

                                                                                                                                                                                  +

                                                                                                                                                                                  If you are running your NATS server in a docker container:

                                                                                                                                                                                  +
                                                                                                                                                                                  > docker run -p 4222:4222 -ti nats:latest
                                                                                                                                                                                  +[1] 2019/05/13 14:55:11.981434 [INF] Starting nats-server version 2.0.0
                                                                                                                                                                                  +...
                                                                                                                                                                                  +[1] 2019/05/13 14:55:11.981545 [INF] Starting http monitor on 0.0.0.0:8222
                                                                                                                                                                                  +[1] 2019/05/13 14:55:11.981560 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                                  +[1] 2019/05/13 14:55:11.981565 [INF] Server is ready
                                                                                                                                                                                  +[1] 2019/05/13 14:55:11.982492 [INF] Listening for route connections on 0.0.0.0:6222
                                                                                                                                                                                  +...
                                                                                                                                                                                  +

                                                                                                                                                                                  More information on containerized NATS is available here.

                                                                                                                                                                                  + + +
                                                                                                                                                                                  + +
                                                                                                                                                                                  +
                                                                                                                                                                                  +
                                                                                                                                                                                  + +

                                                                                                                                                                                  results matching ""

                                                                                                                                                                                  +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +

                                                                                                                                                                                    No results matching ""

                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +
                                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                                    + + +
                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/securing_nats.html b/docs/nats_server/securing_nats.html new file mode 100644 index 0000000..4cbd368 --- /dev/null +++ b/docs/nats_server/securing_nats.html @@ -0,0 +1,2336 @@ + + + + + + + Securing NATS ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                    + +
                                                                                                                                                                                    + +
                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +
                                                                                                                                                                                    + +

                                                                                                                                                                                    Securing NATS

                                                                                                                                                                                    +

                                                                                                                                                                                    The nats-server provides several forms of security:

                                                                                                                                                                                    + + + +
                                                                                                                                                                                    + +
                                                                                                                                                                                    +
                                                                                                                                                                                    +
                                                                                                                                                                                    + +

                                                                                                                                                                                    results matching ""

                                                                                                                                                                                    +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +

                                                                                                                                                                                      No results matching ""

                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                                                                                      + + +
                                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/tls.html b/docs/nats_server/tls.html new file mode 100644 index 0000000..f3904a2 --- /dev/null +++ b/docs/nats_server/tls.html @@ -0,0 +1,2405 @@ + + + + + + + Enabling TLS ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                      + +
                                                                                                                                                                                      + +
                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      + +

                                                                                                                                                                                      TLS Configuration

                                                                                                                                                                                      +

                                                                                                                                                                                      The NATS server uses modern TLS semantics to encrypt client, route and monitoring connections. +Server configuration revolves around a tls map, which has the following properties:

                                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                      PropertyDescription
                                                                                                                                                                                      ca_fileTLS certificate authority file.
                                                                                                                                                                                      cert_fileTLS certificate file.
                                                                                                                                                                                      cipher_suitesWhen set, only the specified TLS cipher suites will be allowed. Values must match golang version used to build the server.
                                                                                                                                                                                      curve_preferencesList of TLS cypher curves to use in order.
                                                                                                                                                                                      insecureSkip certificate verfication.
                                                                                                                                                                                      key_fileTLS certificate key file.
                                                                                                                                                                                      timeoutTLS handshake timeout in fractional seconds.
                                                                                                                                                                                      verify_and_mapIf true, require and verify client certificates and map certificate values for authentication purposes.
                                                                                                                                                                                      verifyIf true, require and verify client certificates.
                                                                                                                                                                                      +

                                                                                                                                                                                      The simplest configuration:

                                                                                                                                                                                      +
                                                                                                                                                                                      tls: {
                                                                                                                                                                                      +  cert_file: "./server-cert.pem"
                                                                                                                                                                                      +  key_file: "./server-key.pem"
                                                                                                                                                                                      +}
                                                                                                                                                                                      +

                                                                                                                                                                                      Or by using server options:

                                                                                                                                                                                      +
                                                                                                                                                                                      > nats-server --tls --tlscert=./server-cert.pem --tlskey=./server-key.pem
                                                                                                                                                                                      +[21417] 2019/05/16 11:21:19.801539 [INF] Starting nats-server version 2.0.0
                                                                                                                                                                                      +[21417] 2019/05/16 11:21:19.801621 [INF] Git commit [not set]
                                                                                                                                                                                      +[21417] 2019/05/16 11:21:19.801777 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                                      +[21417] 2019/05/16 11:21:19.801782 [INF] TLS required for client connections
                                                                                                                                                                                      +[21417] 2019/05/16 11:21:19.801785 [INF] Server id is ND6ZZDQQDGKYQGDD6QN2Y26YEGLTH6BMMOJZ2XJB2VASPVII3XD6RFOQ
                                                                                                                                                                                      +[21417] 2019/05/16 11:21:19.801787 [INF] Server is ready
                                                                                                                                                                                      +

                                                                                                                                                                                      Notice that the log indicates that the client connections will be required to use TLS. If you run the server in Debug mode with -D or -DV, the logs will show the cipher suite selection for each connected client:

                                                                                                                                                                                      +
                                                                                                                                                                                      [22242] 2019/05/16 11:22:20.216322 [DBG] 127.0.0.1:51383 - cid:1 - Client connection created
                                                                                                                                                                                      +[22242] 2019/05/16 11:22:20.216539 [DBG] 127.0.0.1:51383 - cid:1 - Starting TLS client connection handshake
                                                                                                                                                                                      +[22242] 2019/05/16 11:22:20.367275 [DBG] 127.0.0.1:51383 - cid:1 - TLS handshake complete
                                                                                                                                                                                      +[22242] 2019/05/16 11:22:20.367291 [DBG] 127.0.0.1:51383 - cid:1 - TLS version 1.2, cipher suite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
                                                                                                                                                                                      +

                                                                                                                                                                                      When a tls section is specified at the root of the configuration it also affects the monitoring port if https_port option is specified. Other sections such as cluster can specify a tls block.

                                                                                                                                                                                      +

                                                                                                                                                                                      TLS Timeout

                                                                                                                                                                                      +

                                                                                                                                                                                      The timeout setting enables you to control the amount of time that a client is allowed to upgrade its connection to tls. If your clients are experiencing disconnects during TLS handshake, you'll want to increase the value. However if you do be aware that a long timeout exposes your server to attacks where a client doesn't upgrade to TLS and thus consumes resources. Conversely, if you reduce the TLS timeout too much, you are likely to experience handshake errors.

                                                                                                                                                                                      +
                                                                                                                                                                                      tls: {
                                                                                                                                                                                      +  cert_file: "./server-cert.pem"
                                                                                                                                                                                      +  key_file: "./server-key.pem"
                                                                                                                                                                                      +  # clients will fail to connect (value is too low)
                                                                                                                                                                                      +  timeout: 0.0001
                                                                                                                                                                                      +}
                                                                                                                                                                                      +
                                                                                                                                                                                      + +
                                                                                                                                                                                      + +
                                                                                                                                                                                      +
                                                                                                                                                                                      +
                                                                                                                                                                                      + +

                                                                                                                                                                                      results matching ""

                                                                                                                                                                                      +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +

                                                                                                                                                                                        No results matching ""

                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +
                                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                                        + + +
                                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/tls_mutual_auth.html b/docs/nats_server/tls_mutual_auth.html new file mode 100644 index 0000000..5ac9b87 --- /dev/null +++ b/docs/nats_server/tls_mutual_auth.html @@ -0,0 +1,2394 @@ + + + + + + + TLS Authentication ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                        + +
                                                                                                                                                                                        + +
                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +
                                                                                                                                                                                        + +

                                                                                                                                                                                        Client TLS Mutual Authentication

                                                                                                                                                                                        +

                                                                                                                                                                                        The server can require TLS certificates from a client. When required, you can use the certificates to:

                                                                                                                                                                                        +
                                                                                                                                                                                          +
                                                                                                                                                                                        • Validate the client certificate matches a known or trusted CA
                                                                                                                                                                                        • +
                                                                                                                                                                                        • Extract information from a trusted certificate to provide authentication
                                                                                                                                                                                        • +
                                                                                                                                                                                        +

                                                                                                                                                                                        Validating a Client Certificate

                                                                                                                                                                                        +

                                                                                                                                                                                        The server can verify a client certificate using CA certificate. To require verification, simply add the option verify the TLS configuration section as follows:

                                                                                                                                                                                        +
                                                                                                                                                                                        tls {
                                                                                                                                                                                        +  cert_file: "./configs/certs/server-cert.pem"
                                                                                                                                                                                        +  key_file:  "./configs/certs/server-key.pem"
                                                                                                                                                                                        +  ca_file:   "./configs/certs/ca.pem"
                                                                                                                                                                                        +  verify:    true
                                                                                                                                                                                        +}
                                                                                                                                                                                        +

                                                                                                                                                                                        Or via the command line:

                                                                                                                                                                                        +
                                                                                                                                                                                        > ./nats-server --tlsverify --tlscert=./test/configs/certs/server-cert.pem --tlskey=./test/configs/certs/server-key.pem --tlscacert=./test/configs/certs/ca.pem
                                                                                                                                                                                        +
                                                                                                                                                                                        +

                                                                                                                                                                                        This option simply verifies the client's certificate has been signed by the CA specified in the ca_file option.

                                                                                                                                                                                        +

                                                                                                                                                                                        Mapping Client Certificates To A User

                                                                                                                                                                                        +

                                                                                                                                                                                        In addition to verifying that a client certificate was issued by a specified CA, you can use information encoded in the certificate to authenticate a client. The client wouldn't have to provide or track usernames or passwords.

                                                                                                                                                                                        +

                                                                                                                                                                                        To have TLS Mutual Authentication map certificate attributes to the users identity use verify_and_map as shown as follows:

                                                                                                                                                                                        +
                                                                                                                                                                                        tls {
                                                                                                                                                                                        +  cert_file: "./configs/certs/server-cert.pem"
                                                                                                                                                                                        +  key_file:  "./configs/certs/server-key.pem"
                                                                                                                                                                                        +  ca_file:   "./configs/certs/ca.pem"
                                                                                                                                                                                        +  # Require a client certificate and map user id from certificate
                                                                                                                                                                                        +  verify_and_map: true
                                                                                                                                                                                        +}
                                                                                                                                                                                        +
                                                                                                                                                                                        +

                                                                                                                                                                                        Note that verify was changed to verify_and_map.

                                                                                                                                                                                        +
                                                                                                                                                                                        +

                                                                                                                                                                                        There are two options for certificate attributes that can be mapped to user names. The first is the email address in the Subject Alternative Name (SAN) field of the certificate. While generating a certificate with this attribute is outside the scope of this document, you can view one with openssl:

                                                                                                                                                                                        +
                                                                                                                                                                                        $ openssl x509 -noout -text -in  test/configs/certs/client-id-auth-cert.pem
                                                                                                                                                                                        +Certificate:
                                                                                                                                                                                        +...
                                                                                                                                                                                        +        X509v3 extensions:
                                                                                                                                                                                        +            X509v3 Subject Alternative Name:
                                                                                                                                                                                        +                DNS:localhost, IP Address:127.0.0.1, email:derek@nats.io
                                                                                                                                                                                        +            X509v3 Extended Key Usage:
                                                                                                                                                                                        +                TLS Web Client Authentication
                                                                                                                                                                                        +...
                                                                                                                                                                                        +

                                                                                                                                                                                        The configuration to authorize this user would be as follows:

                                                                                                                                                                                        +
                                                                                                                                                                                        authorization {
                                                                                                                                                                                        +  users = [
                                                                                                                                                                                        +    {user: "derek@nats.io"}
                                                                                                                                                                                        +  ]
                                                                                                                                                                                        +}
                                                                                                                                                                                        +
                                                                                                                                                                                        +

                                                                                                                                                                                        Note: This configuration only works for the first email address if there are multiple emails in the SAN field.

                                                                                                                                                                                        +
                                                                                                                                                                                        +

                                                                                                                                                                                        The second option is to use the RFC 2253 Distinguished Names syntax from the certificate subject as follows:

                                                                                                                                                                                        +
                                                                                                                                                                                        $ openssl x509 -noout -text -in  test/configs/certs/tlsauth/client2.pem
                                                                                                                                                                                        +Certificate:
                                                                                                                                                                                        +    Data:
                                                                                                                                                                                        +...
                                                                                                                                                                                        +        Subject: OU=CNCF, CN=example.com
                                                                                                                                                                                        +...
                                                                                                                                                                                        +

                                                                                                                                                                                        The configuration to authorize this user would be as follows:

                                                                                                                                                                                        +
                                                                                                                                                                                        authorization {
                                                                                                                                                                                        +  users = [
                                                                                                                                                                                        +    {user: "CN=example.com,OU=CNCF"}
                                                                                                                                                                                        +  ]
                                                                                                                                                                                        +}
                                                                                                                                                                                        +

                                                                                                                                                                                        TLS Timeout

                                                                                                                                                                                        +

                                                                                                                                                                                        TLS timeout is described here.

                                                                                                                                                                                        + + +
                                                                                                                                                                                        + +
                                                                                                                                                                                        +
                                                                                                                                                                                        +
                                                                                                                                                                                        + +

                                                                                                                                                                                        results matching ""

                                                                                                                                                                                        +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +

                                                                                                                                                                                          No results matching ""

                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                                          + + +
                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/tokens.html b/docs/nats_server/tokens.html new file mode 100644 index 0000000..175afb4 --- /dev/null +++ b/docs/nats_server/tokens.html @@ -0,0 +1,2354 @@ + + + + + + + Tokens ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                          + +
                                                                                                                                                                                          + +
                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          + +

                                                                                                                                                                                          Token Authentication

                                                                                                                                                                                          +

                                                                                                                                                                                          Token authentication is a string that if provided by a client, allows it to connect. It is the simplest authentication provided by the NATS server.

                                                                                                                                                                                          +

                                                                                                                                                                                          To use token authentication, you can just specify an authorization section with the token property set:

                                                                                                                                                                                          +
                                                                                                                                                                                          authorization {
                                                                                                                                                                                          +    token: "s3cr3t"
                                                                                                                                                                                          +}
                                                                                                                                                                                          +

                                                                                                                                                                                          Token authentication can be used in the authorization section for clients and clusters.

                                                                                                                                                                                          +

                                                                                                                                                                                          Or start the server with the --auth flag:

                                                                                                                                                                                          +
                                                                                                                                                                                          > nats-server --auth s3cr3t
                                                                                                                                                                                          +

                                                                                                                                                                                          A client can easily connect by specifying the server URL:

                                                                                                                                                                                          +
                                                                                                                                                                                          > nats-sub -s nats://s3cr3t@localhost:4222 ">"
                                                                                                                                                                                          +Listening on [>]
                                                                                                                                                                                          +

                                                                                                                                                                                          Bcrypted Tokens

                                                                                                                                                                                          +

                                                                                                                                                                                          Tokens can be bcrypted enabling an additional layer of security, as the clear-text version of the token would not be persisted on server configuration file.

                                                                                                                                                                                          +

                                                                                                                                                                                          You can generate bcrypted tokens and passwords using the mkpasswd tool:

                                                                                                                                                                                          +
                                                                                                                                                                                          > mkpasswd
                                                                                                                                                                                          +pass: dag0HTXl4RGg7dXdaJwbC8
                                                                                                                                                                                          +bcrypt hash: $2a$11$PWIFAL8RsWyGI3jVZtO9Nu8.6jOxzxfZo7c/W0eLk017hjgUKWrhy
                                                                                                                                                                                          +

                                                                                                                                                                                          Here's a simple configuration file:

                                                                                                                                                                                          +
                                                                                                                                                                                          authorization {
                                                                                                                                                                                          +    token: "$2a$11$PWIFAL8RsWyGI3jVZtO9Nu8.6jOxzxfZo7c/W0eLk017hjgUKWrhy"
                                                                                                                                                                                          +}
                                                                                                                                                                                          +

                                                                                                                                                                                          The client will still require the clear-text token to connect:

                                                                                                                                                                                          +
                                                                                                                                                                                          nats-sub -s nats://dag0HTXl4RGg7dXdaJwbC8@localhost:4222 ">"
                                                                                                                                                                                          +Listening on [>]
                                                                                                                                                                                          +
                                                                                                                                                                                          + +
                                                                                                                                                                                          + +
                                                                                                                                                                                          +
                                                                                                                                                                                          +
                                                                                                                                                                                          + +

                                                                                                                                                                                          results matching ""

                                                                                                                                                                                          +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +

                                                                                                                                                                                            No results matching ""

                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                                                                            + + +
                                                                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/username_password.html b/docs/nats_server/username_password.html new file mode 100644 index 0000000..558d1bf --- /dev/null +++ b/docs/nats_server/username_password.html @@ -0,0 +1,2360 @@ + + + + + + + Username/Password ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                                            + +
                                                                                                                                                                                            + +
                                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            + +

                                                                                                                                                                                            Username and Password

                                                                                                                                                                                            +

                                                                                                                                                                                            You can authenticate one or more clients using username and passwords. This enables you to have greater control on the management and issuing of credential secrets.

                                                                                                                                                                                            +

                                                                                                                                                                                            For a single user:

                                                                                                                                                                                            +
                                                                                                                                                                                            authorization: {
                                                                                                                                                                                            +    user: a,
                                                                                                                                                                                            +    password: b
                                                                                                                                                                                            +}
                                                                                                                                                                                            +

                                                                                                                                                                                            You can also specify a single username/password by:

                                                                                                                                                                                            +
                                                                                                                                                                                            > nats-server --user a --pass b
                                                                                                                                                                                            +

                                                                                                                                                                                            For multiple users:

                                                                                                                                                                                            +
                                                                                                                                                                                            authorization: {
                                                                                                                                                                                            +    users: [
                                                                                                                                                                                            +        {user: a, password: b},
                                                                                                                                                                                            +        {user: b, password: a}
                                                                                                                                                                                            +    ]
                                                                                                                                                                                            +}
                                                                                                                                                                                            +

                                                                                                                                                                                            Bcrypted Passwords

                                                                                                                                                                                            +

                                                                                                                                                                                            Username/password also supports bcrypted passwords using the mkpasswd tool. Simply replace the clear text password with the bcrypted entries:

                                                                                                                                                                                            +
                                                                                                                                                                                            > mkpasswd
                                                                                                                                                                                            +ass: (Uffs#rG42PAu#Oxi^BNng
                                                                                                                                                                                            +bcrypt hash: $2a$11$V1qrpBt8/SLfEBr4NJq4T.2mg8chx8.MTblUiTBOLV3MKDeAy.f7u
                                                                                                                                                                                            +

                                                                                                                                                                                            And on the configuration file:

                                                                                                                                                                                            +
                                                                                                                                                                                            authorization: {
                                                                                                                                                                                            +    users: [
                                                                                                                                                                                            +        {user: a, password: "$2a$11$V1qrpBt8/SLfEBr4NJq4T.2mg8chx8.MTblUiTBOLV3MKDeAy.f7u"},
                                                                                                                                                                                            +        ...    
                                                                                                                                                                                            +    ]
                                                                                                                                                                                            +}
                                                                                                                                                                                            +

                                                                                                                                                                                            Reloading a Configuration

                                                                                                                                                                                            +

                                                                                                                                                                                            As you add/remove passwords from the server configuration file, you'll want your changes to take effect. To reload without restarting the server and disconnecting clients, simply do:

                                                                                                                                                                                            +
                                                                                                                                                                                            > nats-server --signal reload
                                                                                                                                                                                            +
                                                                                                                                                                                            + +
                                                                                                                                                                                            + +
                                                                                                                                                                                            +
                                                                                                                                                                                            +
                                                                                                                                                                                            + +

                                                                                                                                                                                            results matching ""

                                                                                                                                                                                            +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +

                                                                                                                                                                                              No results matching ""

                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +
                                                                                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                                                                                              + + +
                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_server/windows_srv.html b/docs/nats_server/windows_srv.html new file mode 100644 index 0000000..3bcbc5d --- /dev/null +++ b/docs/nats_server/windows_srv.html @@ -0,0 +1,2348 @@ + + + + + + + Window Service ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                                              + +
                                                                                                                                                                                              + +
                                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +
                                                                                                                                                                                              + +

                                                                                                                                                                                              Windows Service

                                                                                                                                                                                              +

                                                                                                                                                                                              The NATS server supports running as a Windows service. In fact, this is the recommended way of running NATS on Windows. There is currently no installer and instead users should use sc.exe to install the service:

                                                                                                                                                                                              +
                                                                                                                                                                                              sc.exe create nats-server binPath= "%NATS_PATH%\nats-server.exe [nats-server flags]"
                                                                                                                                                                                              +sc.exe start nats-server
                                                                                                                                                                                              +
                                                                                                                                                                                              +

                                                                                                                                                                                              The above will create and start a nats-server service. Note that the nats-server flags should be passed in when creating the service. This allows for running multiple NATS server configurations on a single Windows server by using a 1:1 service instance per installed NATS server service. Once the service is running, it can be controlled using sc.exe or nats-server.exe --signal:

                                                                                                                                                                                              +
                                                                                                                                                                                              REM Reload server configuration
                                                                                                                                                                                              +nats-server.exe --signal reload
                                                                                                                                                                                              +
                                                                                                                                                                                              +REM Reopen log file for log rotation
                                                                                                                                                                                              +nats-server.exe --signal reopen
                                                                                                                                                                                              +
                                                                                                                                                                                              +REM Stop the server
                                                                                                                                                                                              +nats-server.exe --signal stop
                                                                                                                                                                                              +
                                                                                                                                                                                              +

                                                                                                                                                                                              The above commands will default to controlling the nats-server service. If the service is another name, it can be specified:

                                                                                                                                                                                              +
                                                                                                                                                                                              nats-server.exe --signal stop=<service name>
                                                                                                                                                                                              +
                                                                                                                                                                                              +

                                                                                                                                                                                              For a complete list of signals, see process signaling.

                                                                                                                                                                                              + + +
                                                                                                                                                                                              + +
                                                                                                                                                                                              +
                                                                                                                                                                                              +
                                                                                                                                                                                              + +

                                                                                                                                                                                              results matching ""

                                                                                                                                                                                              +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +

                                                                                                                                                                                                No results matching ""

                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +
                                                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                                                + + +
                                                                                                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_streaming/nats-streaming-install.html b/docs/nats_streaming/nats-streaming-install.html new file mode 100644 index 0000000..bc11ea6 --- /dev/null +++ b/docs/nats_streaming/nats-streaming-install.html @@ -0,0 +1,2397 @@ + + + + + + + Installing ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                                + +
                                                                                                                                                                                                + +
                                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +
                                                                                                                                                                                                + +

                                                                                                                                                                                                Install and Run NATS Streaming Server

                                                                                                                                                                                                +

                                                                                                                                                                                                In this tutorial you install and run the NATS Streaming server (nats-streaming-server). +You can follow this same procedure anytime you want to run the NATS Streaming server.

                                                                                                                                                                                                +

                                                                                                                                                                                                Install the NATS Streaming server

                                                                                                                                                                                                +

                                                                                                                                                                                                There are numerous ways to install the NATS Streaming server.

                                                                                                                                                                                                +

                                                                                                                                                                                                GitHub releases

                                                                                                                                                                                                +

                                                                                                                                                                                                The latest official release binaries are always available on the GitHub releases page. +The following platforms are available:

                                                                                                                                                                                                +
                                                                                                                                                                                                  +
                                                                                                                                                                                                • Linux (x86, x86_64, ARM)
                                                                                                                                                                                                • +
                                                                                                                                                                                                • Windows (x86, x86_64)
                                                                                                                                                                                                • +
                                                                                                                                                                                                • macOS
                                                                                                                                                                                                • +
                                                                                                                                                                                                +

                                                                                                                                                                                                The following methods may also be used. Please note that these methods may not install the latest released version:

                                                                                                                                                                                                +

                                                                                                                                                                                                Go

                                                                                                                                                                                                +

                                                                                                                                                                                                Make sure your Go environment is set up

                                                                                                                                                                                                +
                                                                                                                                                                                                % go get github.com/nats-io/nats-streaming-server
                                                                                                                                                                                                +
                                                                                                                                                                                                +

                                                                                                                                                                                                Note that this method may not install the latest released version.

                                                                                                                                                                                                +

                                                                                                                                                                                                Docker Hub

                                                                                                                                                                                                +

                                                                                                                                                                                                The latest official Docker image is always available on Docker Hub.

                                                                                                                                                                                                +

                                                                                                                                                                                                Windows

                                                                                                                                                                                                +

                                                                                                                                                                                                On Windows, the NATS Streaming server can also be installed via Chocolatey:

                                                                                                                                                                                                +
                                                                                                                                                                                                % choco install nats-streaming-server
                                                                                                                                                                                                +
                                                                                                                                                                                                +

                                                                                                                                                                                                macOS

                                                                                                                                                                                                +

                                                                                                                                                                                                On macOS, the NATS Streaming server can be installed via Homebrew:

                                                                                                                                                                                                +
                                                                                                                                                                                                % brew install nats-streaming-server
                                                                                                                                                                                                +
                                                                                                                                                                                                +

                                                                                                                                                                                                Start the NATS Streaming server

                                                                                                                                                                                                +

                                                                                                                                                                                                You can invoke the NATS Streaming server binary, with no options and no configuration file, to start a server with acceptable standalone defaults (no authentication, no clustering).

                                                                                                                                                                                                +
                                                                                                                                                                                                % nats-streaming-server
                                                                                                                                                                                                +
                                                                                                                                                                                                +

                                                                                                                                                                                                When the server starts successfully, you will see that the NATS Streaming server listens for client connections on TCP Port 4222:

                                                                                                                                                                                                +
                                                                                                                                                                                                [18085] 2016/10/31 13:11:44.059012 [INF] Starting nats-streaming-server[test-cluster] version 0.3.1
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.059830 [INF] Starting nats-server version 0.9.4
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.061544 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.061966 [INF] Server is ready
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396819 [INF] STAN: Message store is MEMORY
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396832 [INF] STAN: --------- Store Limits ---------
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396837 [INF] STAN: Channels:                  100 *
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396839 [INF] STAN: -------- channels limits -------
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396842 [INF] STAN:   Subscriptions:          1000 *
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396844 [INF] STAN:   Messages     :       1000000 *
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396855 [INF] STAN:   Bytes        :     976.56 MB *
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396858 [INF] STAN:   Age          :     unlimited *
                                                                                                                                                                                                +[18085] 2016/10/31 13:11:44.396859 [INF] STAN: --------------------------------
                                                                                                                                                                                                +
                                                                                                                                                                                                +

                                                                                                                                                                                                Start the NATS Streaming Server with NATS monitoring enabled (optional)

                                                                                                                                                                                                +

                                                                                                                                                                                                The NATS Streaming server exposes the monitoring interface of its embedded NATS Server (nats-server) on port 8222.

                                                                                                                                                                                                +
                                                                                                                                                                                                % nats-streaming-server -m 8222
                                                                                                                                                                                                +
                                                                                                                                                                                                +

                                                                                                                                                                                                If you run the NATS Streaming server with monitoring enabled, you see the following messages:

                                                                                                                                                                                                +
                                                                                                                                                                                                [18122] 2016/10/31 13:13:10.048663 [INF] Starting nats-streaming-server[test-cluster] version 0.3.1
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.048843 [INF] Starting nats-server version 0.9.4
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.048890 [INF] Starting http monitor on 0.0.0.0:8222
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.048968 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.048992 [INF] Server is ready
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388282 [INF] STAN: Message store is MEMORY
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388301 [INF] STAN: --------- Store Limits ---------
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388309 [INF] STAN: Channels:                  100 *
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388312 [INF] STAN: -------- channels limits -------
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388316 [INF] STAN:   Subscriptions:          1000 *
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388319 [INF] STAN:   Messages     :       1000000 *
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388333 [INF] STAN:   Bytes        :     976.56 MB *
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388338 [INF] STAN:   Age          :     unlimited *
                                                                                                                                                                                                +[18122] 2016/10/31 13:13:10.388341 [INF] STAN: --------------------------------
                                                                                                                                                                                                +
                                                                                                                                                                                                + + +
                                                                                                                                                                                                + +
                                                                                                                                                                                                +
                                                                                                                                                                                                +
                                                                                                                                                                                                + +

                                                                                                                                                                                                results matching ""

                                                                                                                                                                                                +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +

                                                                                                                                                                                                  No results matching ""

                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                                                  + + +
                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_streaming/nats-streaming-intro.html b/docs/nats_streaming/nats-streaming-intro.html new file mode 100644 index 0000000..fce1ee2 --- /dev/null +++ b/docs/nats_streaming/nats-streaming-intro.html @@ -0,0 +1,2388 @@ + + + + + + + Basics ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  + +

                                                                                                                                                                                                  NATS Streaming Concepts

                                                                                                                                                                                                  +

                                                                                                                                                                                                  NATS Streaming is a data streaming system powered by NATS, and written in the Go programming language. The executable name for the NATS Streaming server is nats-streaming-server. NATS Streaming embeds, extends, and interoperates seamlessly with the core NATS platform. The NATS Streaming server is provided as open source software under the Apache-2.0 license. Synadia actively maintains and supports the NATS Streaming server.

                                                                                                                                                                                                  +
                                                                                                                                                                                                  +digraph nats_streaming { + graph [splines=ortho, nodesep=1]; + + application [shape="record", label="{Application Code | NATS Streaming Client API | NATS Client API}"]; + + subgraph cluster_nats_streaming_server { + label="NATS Streaming Server"; + labelloc=b; + nats_server [shape=box, label="NATS Server"]; + streaming_module [shape=box, label="Streaming Module"]; + nats_server -> streaming_module [penwidth=2, dir="both"]; + + { + rank=same + nats_server streaming_module + } + } + + storage [shape=box, style="rounded", label="storage"]; + + application:nats -> nats_server [penwidth=2, dir="both"]; + streaming_module -> storage [penwidth=2, dir="both"]; +} +
                                                                                                                                                                                                  + +

                                                                                                                                                                                                  Features

                                                                                                                                                                                                  +

                                                                                                                                                                                                  In addition to the features of the core NATS platform, NATS Streaming provides the following:

                                                                                                                                                                                                  +
                                                                                                                                                                                                    +
                                                                                                                                                                                                  • Enhanced message protocol - NATS Streaming implements its own enhanced message format using [Google Protocol Buffers] (https://developers.google.com/protocol-buffers/). These messages are transmitted as binary message payloads via core NATS platform, and thus require no changes to the basic NATS protocol. NATS Streaming messages contain the following fields:
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • Sequence - a globally ordered sequence number for the subject's channel
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • Subject - The NATS Streaming delivery subject
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • Reply - The optional "reply-to" subject
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • Data - The message payload
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • Timestamp - the received timestamp, in nanoseconds.
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • Redelivered - A flag signifying whether this message has been redelivered by the server
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • CRC32 - An optional IEEE CRC32
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  • Message/event persistence - NATS Streaming offers configurable message persistence either in-memory or via flat files. The storage subsystem uses a public interface that allows contributors to develop their own custom implementations.
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  • At-least-once-delivery - NATS Streaming offers message acknowledgements between publisher and server (for publish operations) and between subscriber and server (to confirm message delivery). Messages are persisted by the server in memory or secondary storage (or other external storage) and will be redelivered to eligible subscribing clients as needed.
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  • Publisher rate limiting - NATS Streaming provides a connection option called MaxPubAcksInFlight that effectively limits the number of unacknowledged messages that a publisher may have in-flight at any given time. When this maximum is reached, further async publish calls will block until the number of unacknowledged messages falls below the specified limit.
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  • Rate matching/limiting per subscriber - Subscriptions may specify a MaxInFlight option that designates the maximum number of outstanding acknowledgements (messages that have been delivered but not acknowledged) that NATS Streaming will allow for a given subscription. When this limit is reached, NATS Streaming will suspend delivery of messages to this subscription until the number of unacknowledged messages falls below the specified limit.
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  • Historical message replay by subject - New subscriptions may specify a start position in the stream of messages stored for the subscribed subject's channel. By using this option, message delivery may begin at:
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • The earliest message stored for this subject
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • The most recently stored message for this subject, prior to the start of the current subscription. This is commonly thought of as "last value" or "initial value" caching.
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • A specific date/time in nanoseconds
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • An historical offset from the current server date/time, e.g. the last 30 seconds.
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • A specific message sequence number
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  • Durable subscriptions - Subscriptions may also specify a "durable name" which will survive client restarts. Durable subscriptions cause the server to track the last acknowledged message sequence number for a client and durable name. When the client restarts/resubscribes, and uses the same client ID and durable name, the server will resume delivery beginning with the earliest unacknowledged message for this durable subscription.
                                                                                                                                                                                                  • +
                                                                                                                                                                                                  +

                                                                                                                                                                                                  Installation

                                                                                                                                                                                                  +

                                                                                                                                                                                                  NATS provides a server binary for Linux, Mac, and Windows. You can install the server from source on any platform you choose.

                                                                                                                                                                                                  +

                                                                                                                                                                                                  Usage, Configuration and Administration

                                                                                                                                                                                                  +

                                                                                                                                                                                                  NATS Streaming provides a rich set of commands and parameters to configure all aspects of the server. Please refer to the README for further info on usage, configuration, and administration.

                                                                                                                                                                                                  + + +
                                                                                                                                                                                                  + +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  +
                                                                                                                                                                                                  + +

                                                                                                                                                                                                  results matching ""

                                                                                                                                                                                                  +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +

                                                                                                                                                                                                    No results matching ""

                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                                                    + + +
                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_streaming/nats-streaming-protocol.html b/docs/nats_streaming/nats-streaming-protocol.html new file mode 100644 index 0000000..9ae01d4 --- /dev/null +++ b/docs/nats_streaming/nats-streaming-protocol.html @@ -0,0 +1,2525 @@ + + + + + + + Protocol ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    + +

                                                                                                                                                                                                    NATS Streaming Protocol

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The NATS streaming protocol sits atop the core NATS protocol and uses Google's Protocol Buffers. Protocol buffer messages are marshaled into bytes and published as NATS messages on specific subjects described below. In communicating with the NATS Streaming Server, the NATS request/reply pattern is used for all protocol messages that have a corresponding reply.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    NATS streaming protocol conventions

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Subject names: Subject names, including reply subject (INBOX) names, are case-sensitive and must be non-empty alphanumeric strings with no embedded whitespace, and optionally token-delimited using the dot character (.), e.g.:

                                                                                                                                                                                                    +

                                                                                                                                                                                                    FOO, BAR, foo.bar, foo.BAR, FOO.BAR and FOO.BAR.BAZ are all valid subject names

                                                                                                                                                                                                    +

                                                                                                                                                                                                    FOO. BAR, foo. .bar andfoo..bar are *not- valid subject names

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Wildcards: NATS streaming does *not- support wildcards in subject subscriptions

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Protocol definition: The fields of NATS streaming protocol messages are defined in the go-nats-streaming protocol file.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    NATS streaming protocol messages

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The following table briefly describes the NATS streaming protocol messages.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Click the name to see more detailed information, including usage:

                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                    Message NameSent ByDescription
                                                                                                                                                                                                    ConnectRequestClientRequest to connect to the NATS Streaming Server
                                                                                                                                                                                                    ConnectResponseServerResult of a connection request
                                                                                                                                                                                                    SubscriptionRequestClientRequest sent to subscribe and retrieve data
                                                                                                                                                                                                    SubscriptionResponseServerResult of a subscription request
                                                                                                                                                                                                    UnsubscribeRequestClientUnsubscribe from a subject
                                                                                                                                                                                                    PubMsgClientPublish a message to a subject, with optional reply subject
                                                                                                                                                                                                    PubAckServerAn acknowledgement that a published message has been processed on the server
                                                                                                                                                                                                    MsgProtoServerA message from the NATS Streaming Server to a subscribing client
                                                                                                                                                                                                    AckClientAcknowledges that a message has been received
                                                                                                                                                                                                    CloseRequestClientRequest sent to close the connection to the NATS Streaming Server
                                                                                                                                                                                                    CloseRespServerResult of the close request
                                                                                                                                                                                                    +

                                                                                                                                                                                                    The following sections explain each protocol message.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    ConnectRequest

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    A connection request is sent when a streaming client connects to the NATS Streaming Server. The connection request contains a unique identifier representing the client, and an inbox subject the client will listen on for incoming heartbeats. The identifier *must- be unique; a connection attempt with an identifier currently in use will fail. The inbox subject is the subject where the client receives incoming heartbeats, and responds by publishing an empty NATS message to the reply subject, indicating it is alive. The NATS Streaming Server will return a ConnectResponse message to the reply subject specified in the NATS request message.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    This request is published to a subject comprised of the <discover-prefix>.cluster-id, for example, if a NATS Streaming Server was started with a cluster-id of mycluster, and the default prefix was used, the client publishes to _STAN.discover.mycluster

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • clientID: A unique identifier for a client
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • heartbeatInbox: An inbox to which the NATS Streaming Server will send heartbeats for the client to process
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    ConnectResponse

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    After a ConnectRequest is published, the NATS Streaming Server responds with this message on the reply subject of the underlying NATS request. The NATS Streaming Server requires the client to make requests and publish messages on certain subjects (described above), and when a connection is successful, the client saves the information returned to be used in sending other NATS streaming protocol messages. In the event the connection was not successful, an error is returned in the error field.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • pubPrefix: Prefix to use when publishing
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • subRequests: Subject used for subscription requests
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • unsubRequests: Subject used for unsubscribe requests
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • closeRequests: Subject for closing a connection
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • error: An error string, which will be empty/omitted upon success
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • publicKey: Reserved for future use
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    SubscriptionRequest

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    A SubscriptionRequest is published on the subject returned in the subRequests field of a ConnectResponse, and creates a subscription to a subject on the NATS Streaming Server. This will return a SubscriptionResponse message to the reply subject specified in the NATS protocol request message.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • clientID: Client ID originally provided in the ConnectRequest
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • subject: Formal subject to subscribe to, e.g. foo.bar
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • qGroup: Optional queue group
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • inbox: Inbox subject to deliver messages on
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • maxInFlight: Maximum inflight messages without an acknowledgement allowed
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • ackWaitInSecs: Timeout for receiving an acknowledgement from the client
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • durableName: Optional durable name which survives client restarts
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • startPosition: An enumerated type specifying the point in history to start replaying data
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • startSequence: Optional start sequence number
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • startTimeDelta: Optional start time
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    StartPosition enumeration

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • NewOnly: Send only new messages
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • LastReceived: Send only the last received message
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • TimeDeltaStart: Send messages from duration specified in the startTimeDelta field.
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • SequenceStart: Send messages starting from the sequence in the startSequence field.
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • First: Send all available messages
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    SubscriptionResponse

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The SubscriptionResponse message is the response from the SubscriptionRequest. After a client has processed an incoming MsgProto message, it must send an acknowledgement to the ackInbox subject provided here.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • ackInbox: subject the client sends message acknowledgements to the NATS Streaming Server
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • error: error string, empty/omitted if no error
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    UnsubscribeRequest

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The UnsubscribeRequest unsubcribes the connection from the specified subject. The inbox specified is the inbox returned from the NATS Streaming Server in the SubscriptionResponse.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • clientID: Client ID originally provided in the ConnectRequest
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • subject: Subject for the subscription
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • inbox: Inbox subject to identify subscription
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • durableName: Optional durable name which survives client restarts
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    PubMsg

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The PubMsg protocol message is published from a client to the NATS Streaming Server. The GUID must be unique, and is returned in the PubAck message to correlate the success or failure of storing this particular message.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • clientID: Client ID originally provided in the ConnectRequest
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • guid: a guid generated for this particular message
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • subject: subject
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • reply: optional reply subject
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • data: payload
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • sha256: optional sha256 of payload data
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    PubAck

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The PubAck message is an acknowledgement from the NATS Streaming Server that a message has been processed. The message arrives on the subject specified on the reply subject of the NATS message the PubMsg was published on. The GUID is the same GUID used in the PubMsg being acknowledged. If an error string is present, the message was not persisted by the NATS Streaming Server and no guarantees regarding persistence are honored. PubAck messages may be handled asynchronously from their corresponding PubMsg in the client.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • guid: GUID of the message being acknowledged by the NATS Streaming Server
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • error: An error string, empty/omitted if no error
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    MsgProto

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The MsgProto message is received by client from the NATS Streaming Server, containing the payload of messages sent by a publisher. A MsgProto message that is not acknowledged with an Ack message within the duration specified by the ackWaitInSecs field of the subscription request will be redelivered.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • sequence: Globally ordered sequence number for the subject's channel
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • subject: Subject
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • reply: Optional reply
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • data: Payload
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • timestamp: Time the message was stored in the server.
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • redelivered: Flag specifying if the message is being redelivered
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • CRC32: Optional IEEE CRC32
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    Ack

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    An Ack message is an acknowledgement from the client that a MsgProto message has been considered received. It is published to the ackInbox field of the SubscriptionResponse.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • subject: Subject of the message being acknowledged
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    • sequence: Sequence of the message being acknowledged
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    +

                                                                                                                                                                                                    CloseRequest

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    A CloseRequest message is published on the closeRequests subject from the ConnectResponse, and notifies the NATS Streaming Server that the client connection is closing, allowing the server to free up resources. This message should *always- be sent when a client is finished using a connection.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    + +

                                                                                                                                                                                                    CloseResponse

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Description

                                                                                                                                                                                                    +

                                                                                                                                                                                                    The CloseResponse is sent by the NATS Streaming Server on the reply subject of the CloseRequest NATS message. This response contains any error that may have occurred with the corresponding close call.

                                                                                                                                                                                                    +

                                                                                                                                                                                                    Message Structure

                                                                                                                                                                                                    +
                                                                                                                                                                                                      +
                                                                                                                                                                                                    • error: error string, empty/omitted if no error
                                                                                                                                                                                                    • +
                                                                                                                                                                                                    + + +
                                                                                                                                                                                                    + +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    +
                                                                                                                                                                                                    + +

                                                                                                                                                                                                    results matching ""

                                                                                                                                                                                                    +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +

                                                                                                                                                                                                      No results matching ""

                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                                                                                                      + + +
                                                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_streaming/nats-streaming-quickstart.md b/docs/nats_streaming/nats-streaming-quickstart.md new file mode 100644 index 0000000..5812482 --- /dev/null +++ b/docs/nats_streaming/nats-streaming-quickstart.md @@ -0,0 +1,82 @@ +# Getting Started with NATS Streaming + +This tutorial demonstrates NATS Streaming using example [Go NATS Streaming clients](https://github.com/nats-io/go-nats-streaming.git). + +## Prerequisites + +- [Set up your Git environment](https://help.github.com/articles/set-up-git/). +- [Set up your Go environment](https://golang.org/doc/install). + +## Setup + +Download and install the [NATS Streaming Server](https://github.com/nats-io/nats-streaming-server/releases). + +Clone the following repositories: + +- NATS Streaming Server: `git clone https://github.com/nats-io/nats-streaming-server.git` +- NATS Streaming Client: `git clone https://github.com/nats-io/go-nats-streaming.git` + +## Start the NATS Streaming Server + +Two options: + +Run the binary that you downloaded, for example: `$ ./nats-streaming-server` + +Or, run from source: + +```sh +% cd $GOPATH/src/github.com/nats-io/nats-streaming-server +% go run nats-streaming-server.go +``` + +You should see the following, indicating that the NATS Streaming Server is running: + +```sh +% go run nats-streaming-server.go +[89999] 2016/06/25 08:54:35.399071 [INF] Starting nats-streaming-server[test-cluster] version 0.1.0 +[89999] 2016/06/25 08:54:35.399315 [INF] Starting nats-server version 0.9.0.beta +[89999] 2016/06/25 08:54:35.399326 [INF] Listening for client connections on localhost:4222 +[89999] 2016/06/25 08:54:35.400721 [INF] Server is ready +[89999] 2016/06/25 08:54:35.737589 [INF] STAN: Message store is MEMORY +[89999] 2016/06/25 08:54:35.737610 [INF] STAN: Maximum of 1000000 will be stored +``` + +## Run the publisher client + +Publish several messages. For each publication you should get a result. + +```sh +% cd $GOPATH/src/github.com/nats-io/go-nats-streaming/examples/stan-pub +% go run main.go foo "msg one" +Published [foo] : 'msg one' +% go run main.go foo "msg two" +Published [foo] : 'msg two' +% go run main.go foo "msg three" +Published [foo] : 'msg three' +``` + +## Run the subscriber client + +Use the `--all` flag to receive all published messages. + +```sh +% cd $GOPATH/src/github.com/nats-io/go-nats-streaming/examples/stan-sub +% go run main.go --all -c test-cluster -id myID foo +Connected to nats://localhost:4222 clusterID: [test-cluster] clientID: [myID] +subscribing with DeliverAllAvailable +Listening on [foo], clientID=[myID], qgroup=[] durable=[] +[#1] Received on [foo]: 'sequence:1 subject:"foo" data:"msg one" timestamp:1465962202884478817 ' +[#2] Received on [foo]: 'sequence:2 subject:"foo" data:"msg two" timestamp:1465962208545003897 ' +[#3] Received on [foo]: 'sequence:3 subject:"foo" data:"msg three" timestamp:1465962215567601196 +``` + +## Explore other subscription options + +```sh + --seq Start at seqno + --all Deliver all available messages + --last Deliver starting with last published message + --since Deliver messages in last interval (e.g. 1s, 1hr, https://golang.org/pkg/time/#ParseDuration) + --durable Durable subscriber name + --unsubscribe Unsubscribe the durable on exit +``` diff --git a/docs/nats_streaming/nats-streaming-swarm.html b/docs/nats_streaming/nats-streaming-swarm.html new file mode 100644 index 0000000..0ba8a33 --- /dev/null +++ b/docs/nats_streaming/nats-streaming-swarm.html @@ -0,0 +1,2381 @@ + + + + + + + Docker Swarm ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      + +

                                                                                                                                                                                                      Using NATS Streaming with Docker Swarm

                                                                                                                                                                                                      +

                                                                                                                                                                                                      Step 1:

                                                                                                                                                                                                      +

                                                                                                                                                                                                      Create an overlay network for the NATS & NATS Streaming cluster (in this example, nats-streaming-example). +Notice we added the --attachable option which will allow other containers to join the network which will be +done at the end to confirm that can connect to the cluster.

                                                                                                                                                                                                      +
                                                                                                                                                                                                      % docker network create --driver overlay --attachable nats-streaming-example
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +

                                                                                                                                                                                                      Step 2:

                                                                                                                                                                                                      +

                                                                                                                                                                                                      Next create the NATS cluster which will be used by the NATS Streaming cluster.

                                                                                                                                                                                                      +
                                                                                                                                                                                                      for i in `seq 1 3`; do
                                                                                                                                                                                                      +  sudo docker service create --network nats-streaming-example \
                                                                                                                                                                                                      +                             --name nats-cluster-node-$i nats:1.1.0 \
                                                                                                                                                                                                      +                             -cluster nats://0.0.0.0:6222 \
                                                                                                                                                                                                      +                             -routes nats://nats-cluster-node-1:6222,nats://nats-cluster-node-2:6222,nats://nats-cluster-node-3:6222
                                                                                                                                                                                                      +done
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +

                                                                                                                                                                                                      Step 3:

                                                                                                                                                                                                      +

                                                                                                                                                                                                      Now that there is a NATS cluster available to connect, create the NATS Streaming cluster of three nodes as follows:

                                                                                                                                                                                                      +
                                                                                                                                                                                                      for i in `seq 1 3`; do
                                                                                                                                                                                                      +  sudo docker service create --network nats-streaming-example \
                                                                                                                                                                                                      +                             --name nats-streaming-node-$i nats-streaming:0.9.2 \
                                                                                                                                                                                                      +                             -store file -dir store -clustered -cluster_id swarm -cluster_node_id node-$i \
                                                                                                                                                                                                      +                             -cluster_peers node-1,node-2,node-3 \
                                                                                                                                                                                                      +                             -nats_server nats://nats-cluster-node-1:4222,nats://nats-cluster-node-2:4222,nats://nats-cluster-node-3:4222
                                                                                                                                                                                                      +done
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +

                                                                                                                                                                                                      Step 4:

                                                                                                                                                                                                      +

                                                                                                                                                                                                      Next, confirm that it is possible to publish and replay messages via NATS Streaming by attaching a container +to the same network where both NATS and NATS Streaming exist. Below you can find an example session of doing so, +note that even though the client is only connecting to nats://nats-cluster-node-1:4222 the NATS cluster will +be routing the messages so that they will be processed to the NATS Streaming cluster service.

                                                                                                                                                                                                      +
                                                                                                                                                                                                      $ sudo docker run --network nats-streaming-example -it golang:latest
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +root@d12f9f3fcdde:/go# cd src/github.com/nats-io/go-nats-streaming/
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +# Publishing 3 messages
                                                                                                                                                                                                      +root@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-pub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm hello world
                                                                                                                                                                                                      +Published [hello] : 'world'
                                                                                                                                                                                                      +root@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-pub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm hello world
                                                                                                                                                                                                      +Published [hello] : 'world'
                                                                                                                                                                                                      +root@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-pub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm hello world
                                                                                                                                                                                                      +Published [hello] : 'world'
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +# Replaying the messages from the beginning
                                                                                                                                                                                                      +root@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-sub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm -id $RANDOM --all hello
                                                                                                                                                                                                      +Connected to nats://nats-cluster-node-1:4222 clusterID: [swarm] clientID: [17010]
                                                                                                                                                                                                      +subscribing with DeliverAllAvailable
                                                                                                                                                                                                      +Listening on [hello], clientID=[17010], qgroup=[] durable=[]
                                                                                                                                                                                                      +[#1] Received on [hello]: 'sequence:1 subject:"hello" data:"world" timestamp:1526948600795366785 '
                                                                                                                                                                                                      +[#2] Received on [hello]: 'sequence:2 subject:"hello" data:"world" timestamp:1526948604613783399 '
                                                                                                                                                                                                      +[#3] Received on [hello]: 'sequence:3 subject:"hello" data:"world" timestamp:1526948606124258269 '
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + + +
                                                                                                                                                                                                      + +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      +
                                                                                                                                                                                                      + +

                                                                                                                                                                                                      results matching ""

                                                                                                                                                                                                      +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +

                                                                                                                                                                                                        No results matching ""

                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                                                        + + +
                                                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_streaming/nats-streaming-tls.html b/docs/nats_streaming/nats-streaming-tls.html new file mode 100644 index 0000000..0a8a293 --- /dev/null +++ b/docs/nats_streaming/nats-streaming-tls.html @@ -0,0 +1,2354 @@ + + + + + + + Securing ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        + +

                                                                                                                                                                                                        Securing NATS Streaming Server

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Authenticating users

                                                                                                                                                                                                        +

                                                                                                                                                                                                        To enable user authentication from the command line, you can use the same mechanism as the NATS Server (nats-server). You pass in the —user <user> and —pass <pass> commands, or --auth parameters, and the NATS streaming server will automatically use these credentials. Or you can use a configuration file with a single user or token.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        When using a configuration file with multi-user authorization, you must use the —user and —pass parameters with the NATS streaming server, matching a user in the configuration file, in order to specify which user the NATS streaming server should authenticate with to it's embedded NATS server.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        For example, if you pass the NATS streaming server a file with a several users, you must run the streaming server as a user such as "Joe" who is defined in the configuration file.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Using TLS

                                                                                                                                                                                                        +

                                                                                                                                                                                                        While there are several TLS related parameters for the NATS Streaming server, securing the server's connection is straightforward. However, bear in mind that the NATS Streaming server embeds the NATS server resulting in a client-server relationship where the NATS Streaming server is a client of it's embedded NATS server.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        That means two sets of TLS configuration parameters must be used: TLS server parameters for the embedded NATS server, and TLS client parameters for the NATS Streaming server itself.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        The streaming server specifies it's TLS client certificates with the following three parameters:

                                                                                                                                                                                                        +
                                                                                                                                                                                                        -tls_client_key              Client key for the streaming server
                                                                                                                                                                                                        +-tls_client_cert             Client certificate for the streaming server
                                                                                                                                                                                                        +-tls_client_cacert           Client certificate CA for the streaming server
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +

                                                                                                                                                                                                        These could be the same certificates used with your NATS streaming clients.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        The embedded NATS server specifies TLS server certificates with these:

                                                                                                                                                                                                        +
                                                                                                                                                                                                        --tlscert <file>             Server certificate file
                                                                                                                                                                                                        +--tlskey <file>              Private key for server certificate
                                                                                                                                                                                                        +--tlscacert <file>           Client certificate CA for verification
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +

                                                                                                                                                                                                        The server parameters are used the same way you'd secure a typical NATS server.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Proper usage of the NATS Streaming Server requires the use of both client and server parameters.

                                                                                                                                                                                                        +

                                                                                                                                                                                                        For example:

                                                                                                                                                                                                        +
                                                                                                                                                                                                        % nats-streaming-server -tls_client_cert client-cert.pem -tls_client_key client-key.pem -tls_client_cacert ca.pem -tlscert server-cert.pem -tlskey server-key.pem -tlscacert ca.pem
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +

                                                                                                                                                                                                        Further TLS related functionality can be found in Securing NATS > TLS. Note that if specifying cipher suites is required, a configuration file for the embedded NATS server can be passed through the -config command line parameter.

                                                                                                                                                                                                        + + +
                                                                                                                                                                                                        + +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        +
                                                                                                                                                                                                        + +

                                                                                                                                                                                                        results matching ""

                                                                                                                                                                                                        +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +

                                                                                                                                                                                                          No results matching ""

                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                                                          + + +
                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/README.md b/docs/nats_tools/README.md new file mode 100644 index 0000000..bcffe24 --- /dev/null +++ b/docs/nats_tools/README.md @@ -0,0 +1,10 @@ +## NATS Tools + +The NATS Ecosystem has many tools to support server configuration, enhance monitoring or tune performance: + +- [mkpasswd](nats_tools/mkpasswd.md) - Generates or bcrypts passwords +- [nk](nats_tools/nk.md) - Generate NKeys +- [nsc](nats_tools/nsc/README.md) - Configure Operators, Accounts and Users +- [nats account server](nats_tools/nas/README.md) - Serve Account JWTs +- [nats top](nats_tools/nats_top/README.md) - Monitor NATS Server +- [nats-bench](nats_tools/natsbench.md) - Benchmark NATS Server \ No newline at end of file diff --git a/docs/nats_tools/mkpasswd.html b/docs/nats_tools/mkpasswd.html new file mode 100644 index 0000000..fe0ffef --- /dev/null +++ b/docs/nats_tools/mkpasswd.html @@ -0,0 +1,2355 @@ + + + + + + + mkpasswd ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          + +

                                                                                                                                                                                                          mkpasswd: Protect Passwords with bcrypt

                                                                                                                                                                                                          +

                                                                                                                                                                                                          The server supports hashing of passwords and authentication tokens using bcrypt. To take advantage of this, simply replace the plaintext password in the configuration with its bcrypt hash, and the server will automatically utilize bcrypt as needed.

                                                                                                                                                                                                          +

                                                                                                                                                                                                          A utility for creating bcrypt hashes is included with the nats-server distribution (util/mkpasswd.go). Running it with no arguments will generate a new secure password along with the associated hash. This can be used for a password or a token in the configuration.

                                                                                                                                                                                                          +

                                                                                                                                                                                                          Installing mkpasswd

                                                                                                                                                                                                          +

                                                                                                                                                                                                          If you have go installed, you can easily install the mkpasswd tool by doing:

                                                                                                                                                                                                          +
                                                                                                                                                                                                          > go get github.com/nats-server/util/mkpasswd
                                                                                                                                                                                                          +

                                                                                                                                                                                                          Alternatively, you can:

                                                                                                                                                                                                          +
                                                                                                                                                                                                          > git clone git@github.com:nats-io/nats-server
                                                                                                                                                                                                          +> cd nats-server/util/mkpasswd
                                                                                                                                                                                                          +> go install mkpasswd.go
                                                                                                                                                                                                          +

                                                                                                                                                                                                          Generating bcrypted passwords

                                                                                                                                                                                                          +

                                                                                                                                                                                                          With mkpasswd installed:

                                                                                                                                                                                                          +
                                                                                                                                                                                                          > mkpasswd
                                                                                                                                                                                                          +pass: #IclkRPHUpsTmACWzmIGXr
                                                                                                                                                                                                          +bcrypt hash: $2a$11$3kIDaCxw.Glsl1.u5nKa6eUnNDLV5HV9tIuUp7EHhMt6Nm9myW1aS
                                                                                                                                                                                                          +

                                                                                                                                                                                                          If you already have a password selected, you can supply the -p flag on the command line, enter your desired password, and a bcrypt hash will be generated for it:

                                                                                                                                                                                                          +
                                                                                                                                                                                                          > mkpasswd -p
                                                                                                                                                                                                          +Enter Password: *******
                                                                                                                                                                                                          +Reenter Password: ******
                                                                                                                                                                                                          +bcrypt hash: $2a$11$3kIDaCxw.Glsl1.u5nKa6eUnNDLV5HV9tIuUp7EHhMt6Nm9myW1aS
                                                                                                                                                                                                          +

                                                                                                                                                                                                          To use the password on the server, add the hash into the server configuration file's authorization section.

                                                                                                                                                                                                          +
                                                                                                                                                                                                            authorization {
                                                                                                                                                                                                          +    user: derek
                                                                                                                                                                                                          +    password: $2a$11$3kIDaCxw.Glsl1.u5nKa6eUnNDLV5HV9tIuUp7EHhMt6Nm9myW1aS
                                                                                                                                                                                                          +  }
                                                                                                                                                                                                          +

                                                                                                                                                                                                          Note the client will still have to provide the plain text version of the password, the server however will only store the hash to verify that the password is correct when supplied.

                                                                                                                                                                                                          + + +
                                                                                                                                                                                                          + +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          +
                                                                                                                                                                                                          + +

                                                                                                                                                                                                          results matching ""

                                                                                                                                                                                                          +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +

                                                                                                                                                                                                            No results matching ""

                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                                                                                            + + +
                                                                                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nas/dir_store.md b/docs/nats_tools/nas/dir_store.md new file mode 100644 index 0000000..84ab0a4 --- /dev/null +++ b/docs/nats_tools/nas/dir_store.md @@ -0,0 +1,24 @@ +## Directory Store + + +### NATS Account Server Configuration + +``` +OperatorJWTPath: "/users/synadia/.nsc/nats/Test/Test.jwt", +http { + port: 9090 +}, +store { + dir: "/tmp/as_store", + readonly: false, + shard: true +} +``` + +### To Add/Update a JWT + +``` +> curl -i -X POST localhost:9090/jwt/v1/accounts/AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H --data-binary @/Users/synadia/.nsc/nats/Test/accounts/TestAccount/TestAccount.jwt -H "Content-Type: text/text" +``` + +Note that the `@` before the file name is required for curl to read the specified file, and use it as the payload. Otherwise it will simply post the path specified, which will result in an update error. \ No newline at end of file diff --git a/docs/nats_tools/nas/index.html b/docs/nats_tools/nas/index.html new file mode 100644 index 0000000..97799f3 --- /dev/null +++ b/docs/nats_tools/nas/index.html @@ -0,0 +1,2340 @@ + + + + + + + nats-account-server ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            + +

                                                                                                                                                                                                            NATS Account Server

                                                                                                                                                                                                            +

                                                                                                                                                                                                            The NATS Account Server is an HTTP server that hosts and vends JWTs for nats-server 2.0 account authentication. The server supports an number of stores which enable it to serve JWTs from:

                                                                                                                                                                                                            +
                                                                                                                                                                                                              +
                                                                                                                                                                                                            • a directory
                                                                                                                                                                                                            • +
                                                                                                                                                                                                            • an NSC directory
                                                                                                                                                                                                            • +
                                                                                                                                                                                                            • memory (for testing purposes)
                                                                                                                                                                                                            • +
                                                                                                                                                                                                            +

                                                                                                                                                                                                            The server can operate in a READ ONLY mode where it serves content from a directory, or in notification mode, where it can notify a NATS server that JWT in the store have been modified, updating the NATS server with the updated JWT.

                                                                                                                                                                                                            +

                                                                                                                                                                                                            Memory Resolver

                                                                                                                                                                                                            +

                                                                                                                                                                                                            For very simple installations, where JWTs are mostly static, the NATS server also supports a Memory Resolver that can be configured statically in the server's configuration file.

                                                                                                                                                                                                            +

                                                                                                                                                                                                            You can learn more about how to configure the memory resolver here.

                                                                                                                                                                                                            + + +
                                                                                                                                                                                                            + +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            +
                                                                                                                                                                                                            + +

                                                                                                                                                                                                            results matching ""

                                                                                                                                                                                                            +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +

                                                                                                                                                                                                              No results matching ""

                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                                                                                                              + + +
                                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nas/inspecting_jwts.html b/docs/nats_tools/nas/inspecting_jwts.html new file mode 100644 index 0000000..f11957e --- /dev/null +++ b/docs/nats_tools/nas/inspecting_jwts.html @@ -0,0 +1,2363 @@ + + + + + + + Inspecting JWTs ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              + +

                                                                                                                                                                                                              Inspecting a JWT from the nats-account-server

                                                                                                                                                                                                              +

                                                                                                                                                                                                              Let’s say that you know the account for a stream that you are interested in, but you don't know all the details for creating an import. If you know and have access to a nats-account-server, you can help yourself. The nats-account-server can decode a JWT and give you human readable values that you can use.

                                                                                                                                                                                                              +

                                                                                                                                                                                                              The endpoint for retrieving an account JWT is: +/jwt/v1/accounts/<account_id>. To decode a JWT add the query string ?decode=true.

                                                                                                                                                                                                              +
                                                                                                                                                                                                              > curl http://localhost:9090/jwt/v1/accounts/AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H\?decode=true
                                                                                                                                                                                                              +{
                                                                                                                                                                                                              +    "typ": "jwt",
                                                                                                                                                                                                              +    "alg": "ed25519"
                                                                                                                                                                                                              +}
                                                                                                                                                                                                              +{
                                                                                                                                                                                                              +    "jti": "5YMRO4KNMYWQDMRAHVTT4KX63CA2L3M6F4VM3S7NNGPMCCATORXQ",
                                                                                                                                                                                                              +    "iat": 1556229062 (2019-04-25),
                                                                                                                                                                                                              +    "iss": "OAYI3YUZSWDNMERD2IN3HZSIP3JA2E3VDTXSTEVOIII273XL2NABJP64",
                                                                                                                                                                                                              +    "name": "TestAccount",
                                                                                                                                                                                                              +    "sub": "AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H",
                                                                                                                                                                                                              +    "type": "account",
                                                                                                                                                                                                              +    "nats": {
                                                                                                                                                                                                              +        "exports": [
                                                                                                                                                                                                              +            {
                                                                                                                                                                                                              +                "name": "abc",
                                                                                                                                                                                                              +                "subject": "a.b.c.>",
                                                                                                                                                                                                              +                "type": "stream"
                                                                                                                                                                                                              +            }
                                                                                                                                                                                                              +        ],
                                                                                                                                                                                                              +…
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +

                                                                                                                                                                                                              As you can see from above, the JWT is decoded. The standard JWT claim field abbreviated names may be a little terse, so here's a list of the more important ones:

                                                                                                                                                                                                              +
                                                                                                                                                                                                                +
                                                                                                                                                                                                              • jti is the JWT ID. All JWTs have one and they are unique.
                                                                                                                                                                                                              • +
                                                                                                                                                                                                              • iat is Issued At - the UNIX date (number of seconds since 1970) when the JWT was issued.
                                                                                                                                                                                                              • +
                                                                                                                                                                                                              • iss is the Issuer. For NATS JWTs it is the public key of the issuer. In the example above the entity is an account, so the issuer will be an operator. Thus the id will always start with the letter O.
                                                                                                                                                                                                              • +
                                                                                                                                                                                                              • sub is the Subject of the claim. In NATS JWTs it is the public key of the entity of the claim is for. In the example above, it is an Account, so the issuer will always start with the letter A.
                                                                                                                                                                                                              • +
                                                                                                                                                                                                              +

                                                                                                                                                                                                              On the example above, we see that there is one export in this account, it is public (token_req is false or not set), and it is a stream. So this account exports a public stream. With that information you can create an import on the public stream.

                                                                                                                                                                                                              + + +
                                                                                                                                                                                                              + +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              +
                                                                                                                                                                                                              + +

                                                                                                                                                                                                              results matching ""

                                                                                                                                                                                                              +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +

                                                                                                                                                                                                                No results matching ""

                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nas/mem_resolver.html b/docs/nats_tools/nas/mem_resolver.html new file mode 100644 index 0000000..9d482b5 --- /dev/null +++ b/docs/nats_tools/nas/mem_resolver.html @@ -0,0 +1,2393 @@ + + + + + + + Memory Resolver ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                + +

                                                                                                                                                                                                                Memory Resolver

                                                                                                                                                                                                                +

                                                                                                                                                                                                                The MEMORY resolver is a built-in resolver for JWTs. It is mostly used by test setups but can be used to test the simplest of environments where there is one or very few accounts, and the account JWTs don’t change often.

                                                                                                                                                                                                                +

                                                                                                                                                                                                                The basic configuration for the server requires:

                                                                                                                                                                                                                +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                • The operator JWT
                                                                                                                                                                                                                • +
                                                                                                                                                                                                                • resolver set to MEMORY
                                                                                                                                                                                                                • +
                                                                                                                                                                                                                • resolver_preload set to an object where account public keys are mapped to account JWTs.
                                                                                                                                                                                                                • +
                                                                                                                                                                                                                +

                                                                                                                                                                                                                Create Required Entities

                                                                                                                                                                                                                +

                                                                                                                                                                                                                Let’s create the setup:

                                                                                                                                                                                                                +
                                                                                                                                                                                                                > nsc add operator -n memory
                                                                                                                                                                                                                +Generated operator key - private key stored "/Users/synadia/.nkeys/memory/memory.nk"
                                                                                                                                                                                                                +Success! - added operator "memory"
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +> nsc add account --name A
                                                                                                                                                                                                                +Generated account key - private key stored "/Users/synadia/.nkeys/memory/accounts/A/A.nk"
                                                                                                                                                                                                                +Success! - added account "A"
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +> nsc describe account -W
                                                                                                                                                                                                                +╭──────────────────────────────────────────────────────────────────────────────────────╮
                                                                                                                                                                                                                +│                                   Account Details                                    │
                                                                                                                                                                                                                +├───────────────────────────┬──────────────────────────────────────────────────────────┤
                                                                                                                                                                                                                +│ Name                      │ A                                                        │
                                                                                                                                                                                                                +│ Account ID                │ ACSU3Q6LTLBVLGAQUONAGXJHVNWGSKKAUA7IY5TB4Z7PLEKSR5O6JTGR │
                                                                                                                                                                                                                +│ Issuer ID                 │ ODWZJ2KAPF76WOWMPCJF6BY4QIPLTUIY4JIBLU4K3YDG3GHIWBVWBHUZ │
                                                                                                                                                                                                                +│ Issued                    │ 2019-04-30 20:21:34 UTC                                  │
                                                                                                                                                                                                                +│ Expires                   │                                                          │
                                                                                                                                                                                                                +├───────────────────────────┼──────────────────────────────────────────────────────────┤
                                                                                                                                                                                                                +│ Max Connections           │ Unlimited                                                │
                                                                                                                                                                                                                +│ Max Leaf Node Connections │ Unlimited                                                │
                                                                                                                                                                                                                +│ Max Data                  │ Unlimited                                                │
                                                                                                                                                                                                                +│ Max Exports               │ Unlimited                                                │
                                                                                                                                                                                                                +│ Max Imports               │ Unlimited                                                │
                                                                                                                                                                                                                +│ Max Msg Payload           │ Unlimited                                                │
                                                                                                                                                                                                                +│ Max Subscriptions         │ Unlimited                                                │
                                                                                                                                                                                                                +│ Exports Allows Wildcards  │ True                                                     │
                                                                                                                                                                                                                +├───────────────────────────┼──────────────────────────────────────────────────────────┤
                                                                                                                                                                                                                +│ Imports                   │ None                                                     │
                                                                                                                                                                                                                +│ Exports                   │ None                                                     │
                                                                                                                                                                                                                +╰───────────────────────────┴──────────────────────────────────────────────────────────╯
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +> cat /Users/synadia/.nsc/nats/memory/accounts/A/A.jwt 
                                                                                                                                                                                                                +eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPRFhJSVI2Wlg1Q1AzMlFJTFczWFBENEtTSDYzUFNNSEZHUkpaT05DR1RLVVBISlRLQ0JBIiwiaWF0IjoxNTU2NjU1Njk0LCJpc3MiOiJPRFdaSjJLQVBGNzZXT1dNUENKRjZCWTRRSVBMVFVJWTRKSUJMVTRLM1lERzNHSElXQlZXQkhVWiIsIm5hbWUiOiJBIiwic3ViIjoiQUNTVTNRNkxUTEJWTEdBUVVPTkFHWEpIVk5XR1NLS0FVQTdJWTVUQjRaN1BMRUtTUjVPNkpUR1IiLCJ0eXBlIjoiYWNjb3VudCIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJjb25uIjotMSwibGVhZiI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ3aWxkY2FyZHMiOnRydWV9fX0._WW5C1triCh8a4jhyBxEZZP8RJ17pINS8qLzz-01o6zbz1uZfTOJGvwSTS6Yv2_849B9iUXSd-8kp1iMXHdoBA
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +> nsc add user --name TA
                                                                                                                                                                                                                +Generated user key - private key stored “/Users/synadia/.nkeys/memory/accounts/A/users/TA.nk"
                                                                                                                                                                                                                +Generated user creds file “/Users/synadia/.nkeys/memory/accounts/A/users/TA.creds"
                                                                                                                                                                                                                +Success! - added user "TA" to "A"
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +

                                                                                                                                                                                                                Create the Server Config

                                                                                                                                                                                                                +

                                                                                                                                                                                                                With the above entries, we can reference the operator JWT and the account JWT in a server configuration. Remember that your configuration will be in $NSC_HOME/nats/<operator_name>/<operator_name>.jwt for the operator. The account JWT will be in $NSC_HOME/nats/<operator_name>/accounts/<account_name>/<account_name>.jwt

                                                                                                                                                                                                                +
                                                                                                                                                                                                                operator: /Users/synadia/.nsc/nats/memory/memory.jwt
                                                                                                                                                                                                                +resolver: MEMORY
                                                                                                                                                                                                                +resolver_preload: {
                                                                                                                                                                                                                +ACSU3Q6LTLBVLGAQUONAGXJHVNWGSKKAUA7IY5TB4Z7PLEKSR5O6JTGR: eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPRFhJSVI2Wlg1Q1AzMlFJTFczWFBENEtTSDYzUFNNSEZHUkpaT05DR1RLVVBISlRLQ0JBIiwiaWF0IjoxNTU2NjU1Njk0LCJpc3MiOiJPRFdaSjJLQVBGNzZXT1dNUENKRjZCWTRRSVBMVFVJWTRKSUJMVTRLM1lERzNHSElXQlZXQkhVWiIsIm5hbWUiOiJBIiwic3ViIjoiQUNTVTNRNkxUTEJWTEdBUVVPTkFHWEpIVk5XR1NLS0FVQTdJWTVUQjRaN1BMRUtTUjVPNkpUR1IiLCJ0eXBlIjoiYWNjb3VudCIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJjb25uIjotMSwibGVhZiI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ3aWxkY2FyZHMiOnRydWV9fX0._WW5C1triCh8a4jhyBxEZZP8RJ17pINS8qLzz-01o6zbz1uZfTOJGvwSTS6Yv2_849B9iUXSd-8kp1iMXHdoBA
                                                                                                                                                                                                                +}
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +

                                                                                                                                                                                                                Save the config at server.conf and start the server:

                                                                                                                                                                                                                +
                                                                                                                                                                                                                > nats-server -c server.conf
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +

                                                                                                                                                                                                                Start a subscriber:

                                                                                                                                                                                                                +
                                                                                                                                                                                                                > nats-sub -creds /Users/synadia/.nkeys/memory/accounts/A/users/TA.creds ">"
                                                                                                                                                                                                                +Listening on [>]
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                + +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                +
                                                                                                                                                                                                                + +

                                                                                                                                                                                                                results matching ""

                                                                                                                                                                                                                +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                  No results matching ""

                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nas/nas_conf.html b/docs/nats_tools/nas/nas_conf.html new file mode 100644 index 0000000..bddf525 --- /dev/null +++ b/docs/nats_tools/nas/nas_conf.html @@ -0,0 +1,2577 @@ + + + + + + + Basics ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                  Configuration

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Basic configuration revolves around 4 settings:

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                  • The store to read JWTs from
                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                  • The HTTP/S configuration
                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                  • NATS (for cases where updates are enabled)
                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                  • Logging
                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  For complete information on please refer to the project's Github.

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  nsc Configuration

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  For a basic usage of the server you can specify the -nsc flag, and specify the path to an operator in your environment.

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  If you have not yet created an operator or accounts, you'll need to do so before continuing. See NSC

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  You can easily locate the path by running nsc env to print your nsc settings:

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  > nsc env
                                                                                                                                                                                                                  +╭──────────────────────────────────────────╮
                                                                                                                                                                                                                  +│             NSC Environment              │
                                                                                                                                                                                                                  +├──────────────────┬─────┬─────────────────┤
                                                                                                                                                                                                                  +│ Setting          │ Set │ Effective Value │
                                                                                                                                                                                                                  +├──────────────────┼─────┼─────────────────┤
                                                                                                                                                                                                                  +│ $NKEYS_PATH      │ No  │ ~/.nkeys        │
                                                                                                                                                                                                                  +│ $NSC_HOME        │ No  │ ~/.nsc          │
                                                                                                                                                                                                                  +│ Config           │     │ ~/.nsc/nsc.json │
                                                                                                                                                                                                                  +├──────────────────┼─────┼─────────────────┤
                                                                                                                                                                                                                  +│ Stores Dir       │     │ ~/.nsc/nats     │
                                                                                                                                                                                                                  +│ Default Operator │     │ Test            │
                                                                                                                                                                                                                  +│ Default Account  │     │ TestAccount     │
                                                                                                                                                                                                                  +│ Default Cluster  │     │                 │
                                                                                                                                                                                                                  +╰──────────────────┴─────┴─────────────────╯
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  The path you are interested in the Stores Dir. This is the root of all operators, you'll also need the name of your operator. If your current operator is not listed, you can list all your available operators by doing:

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  > nsc list operators
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  To start the nats-account-server with the operator Test:

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  > nats-account-server -nsc ~/.nsc/nats/Test
                                                                                                                                                                                                                  +2019/05/10 11:22:41.845148 [INF] starting NATS Account server, version 0.0-dev
                                                                                                                                                                                                                  +2019/05/10 11:22:41.845241 [INF] server time is Fri May 10 11:22:41 CDT 2019
                                                                                                                                                                                                                  +2019/05/10 11:22:41.845245 [INF] loading operator from /Users/synadia/.nsc/nats/Test/Test.jwt
                                                                                                                                                                                                                  +2019/05/10 11:22:41.846367 [INF] creating a read-only store for the NSC folder at /Users/synadia/.nsc/nats/Test
                                                                                                                                                                                                                  +2019/05/10 11:22:41.846459 [INF] NATS is not configured, server will not fire notifications on update
                                                                                                                                                                                                                  +2019/05/10 11:22:41.855291 [INF] http listening on port 9090
                                                                                                                                                                                                                  +2019/05/10 11:22:41.855301 [INF] nats-account-server is running
                                                                                                                                                                                                                  +2019/05/10 11:22:41.855303 [INF] configure the nats-server with:
                                                                                                                                                                                                                  +2019/05/10 11:22:41.855306 [INF]   resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  By default the server will serve JWTs on the localhost at port 9090. The last line in the shown in the printout is important, that is the resolver URL you'll have to provide on your NATS server configuration. You'll also need the matching operator JWT which is on ~/.nsc/nats/Test/Test.jwt if you are following the example above. On the server configuration you'll need to expand the ~ as necessary. Here's what my NATS server configuration looks like:

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  operator: /Users/synadia/.nsc/nats/Test/Test.jwt
                                                                                                                                                                                                                  +resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Note that servers you create with the -nsc option (or store option) are read-only. This means that the server will not accept POST requests to update the JWT store.

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Directory Configuration

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  You can start a server using a plain directory. In this case you'll be responsible for adding any JWT that you want resolved.

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  The server looks for account JWTs by using the public key of the account as the file name followed by the extension .jwt. The server will not introspect the JWTs, so if you don't name the files correctly, it will fail to find them or serve a JWT that doesn't match the requested account.

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  > mkdir /tmp/jwts
                                                                                                                                                                                                                  +nats-account-server -dir /tmp/jwts
                                                                                                                                                                                                                  +2019/05/10 11:33:40.501305 [INF] starting NATS Account server, version 0.0-dev
                                                                                                                                                                                                                  +2019/05/10 11:33:40.501383 [INF] server time is Fri May 10 11:33:40 CDT 2019
                                                                                                                                                                                                                  +2019/05/10 11:33:40.501404 [INF] creating a store at /tmp/jwts
                                                                                                                                                                                                                  +2019/05/10 11:33:40.501430 [INF] NATS is not configured, server will not fire notifications on update
                                                                                                                                                                                                                  +2019/05/10 11:33:40.510273 [INF] http listening on port 9090
                                                                                                                                                                                                                  +2019/05/10 11:33:40.510283 [INF] nats-account-server is running
                                                                                                                                                                                                                  +2019/05/10 11:33:40.510285 [INF] configure the nats-server with:
                                                                                                                                                                                                                  +2019/05/10 11:33:40.510291 [INF]   resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Configuration for the NATS server is the same as in the previous example:

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  operator: /Users/synadia/.nsc/nats/Test/Test.jwt
                                                                                                                                                                                                                  +resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Configuration File

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  While the -nsc and -dir store flags are sufficient for some very simple developer setups, any production or non-read-only server will require a configuration file.

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Let's take a look at the configuration options:

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Configuration Options

                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  OptionDescription
                                                                                                                                                                                                                  httpAn http configuration block specifying HTTP options.
                                                                                                                                                                                                                  loggingA logging configuration block specifying server logging options.
                                                                                                                                                                                                                  natsA nats configuration block specifying NATS connection information for the account server to push JWT changes to a NATS server.
                                                                                                                                                                                                                  operatorjwtpathThe path to an operator JWT. Required for non-read-only servers. Only JWTs signed by the operator (or one of it's signing keys) are accepted.
                                                                                                                                                                                                                  storeA store configuration block specifying store options.
                                                                                                                                                                                                                  systemaccountjwtpathPath to an Account JWT that should be returned as the system account.
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  store Configuration

                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  OptionDescription
                                                                                                                                                                                                                  dirConfigures a directory as a store.
                                                                                                                                                                                                                  nscConfigures an nsc read-only store. The value should be the path to an operator directory. Option is mutually exlusive with dir.
                                                                                                                                                                                                                  readonlyIf true, the store will not accept POST requests. Note that to receive requests, the store must also have operatorjwtpath specified as a root option.
                                                                                                                                                                                                                  shardIf true, JWTs are sharded in the store directory.
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  logging Options

                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  OptionDescription
                                                                                                                                                                                                                  timeIf true, a timestamp is added to log messages.
                                                                                                                                                                                                                  debugIf true, debug messages are logged.
                                                                                                                                                                                                                  traceIf true, trace messages are logged.
                                                                                                                                                                                                                  colorsIf true, messages are logged using ANSI color escape sequences.
                                                                                                                                                                                                                  pidIf true, the process id for the server is added to log messages.
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  http Options

                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  OptionDescription
                                                                                                                                                                                                                  hostInterface to listen for requests on.
                                                                                                                                                                                                                  portPort to listen for requests on.
                                                                                                                                                                                                                  readtimeoutMax amount of time in milliseconds to wait for a http read operation to complete.
                                                                                                                                                                                                                  writetimeoutMax amount of time in milliseconds to wait for a http write operation to complete.
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  nats Options

                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  OptionDescription
                                                                                                                                                                                                                  serversList of NATS servers for the account server to use when connecting to a NATS server to publish updates.
                                                                                                                                                                                                                  connecttimeoutMax amount of time in milliseconds to wait for a NATS connection.
                                                                                                                                                                                                                  reconnecttimewaitAmount of time in milliseconds to between NATS server reconnect attempts.
                                                                                                                                                                                                                  tlsA tls configuration block.
                                                                                                                                                                                                                  usercredentialsA credentials creds file for connecting to the NATS server. Account must be a member of a system account.
                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  tls Options

                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                  OptionDescription
                                                                                                                                                                                                                  rootfilepath to the CA certificate.
                                                                                                                                                                                                                  certfilepath to the certificate.
                                                                                                                                                                                                                  certfilepath to the certificate key.
                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  +
                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                  results matching ""

                                                                                                                                                                                                                  +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                    No results matching ""

                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nats_top/index.html b/docs/nats_tools/nats_top/index.html new file mode 100644 index 0000000..cb2dc6e --- /dev/null +++ b/docs/nats_tools/nats_top/index.html @@ -0,0 +1,2399 @@ + + + + + + + nats-top ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                    NATS TOP

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    nats-top is a top-like tool for monitoring nats-server servers.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    The nats-top tool provides a dynamic real-time view of a NATS server. nats-top can display a variety of system summary information about the NATS server, such as subscription, pending bytes, number of messages, and more, in real time. For example:

                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    nats-top
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +nats-server version 0.6.4 (uptime: 31m42s)
                                                                                                                                                                                                                    +Server:
                                                                                                                                                                                                                    +  Load: CPU: 0.8%   Memory: 5.9M  Slow Consumers: 0
                                                                                                                                                                                                                    +  In:   Msgs: 34.2K  Bytes: 3.0M  Msgs/Sec: 37.9  Bytes/Sec: 3389.7
                                                                                                                                                                                                                    +  Out:  Msgs: 68.3K  Bytes: 6.0M  Msgs/Sec: 75.8  Bytes/Sec: 6779.4
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +Connections: 4
                                                                                                                                                                                                                    +  HOST                 CID      SUBS    PENDING     MSGS_TO     MSGS_FROM   BYTES_TO    BYTES_FROM  LANG     VERSION SUBSCRIPTIONS
                                                                                                                                                                                                                    +  127.0.0.1:56134      2        5       0           11.6K       11.6K       1.1M        905.1K      go       1.1.0   foo, hello
                                                                                                                                                                                                                    +  127.0.1.1:56138      3        1       0           34.2K       0           3.0M        0           go       1.1.0    _INBOX.a96f3f6853616154d23d1b5072
                                                                                                                                                                                                                    +  127.0.0.1:56144      4        5       0           11.2K       11.1K       873.5K      1.1M        go       1.1.0   foo, hello
                                                                                                                                                                                                                    +  127.0.0.1:56151      5        8       0           11.4K       11.5K       1014.6K     1.0M        go       1.1.0   foo, hello
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Installation

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    nats-top can be installed using go get. For example:

                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    go get github.com/nats-io/nats-top
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    NOTE: You may have to run the above command as user sudo depending on your setup. If you receive an error that you cannot install nats-top because your $GOPATH is not set, when in fact it is set, use command sudo -E go get github.com/nats-io/nats-top to install nats-top. The -E flag tells sudo to preserve the current user's environment.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Usage

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Once installed, nats-top can be run with the command nats-top and optional arguments.

                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    nats-top [-s server] [-m monitor] [-n num_connections] [-d delay_in_secs] [-sort by]
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Options

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Optional arguments inclde the following:

                                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                    OptionDescription
                                                                                                                                                                                                                    -m monitorMonitoring http port from nats-server.
                                                                                                                                                                                                                    -n num_connectionsLimit the connections requested to the server (default 1024).
                                                                                                                                                                                                                    -d delay_in_secsScreen refresh interval (default 1 second).
                                                                                                                                                                                                                    -sort byField to use for sorting the connections (see below).
                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Commands

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    While in nats-top view, you can use the following commands.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    option

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Use the o<option> command to set the primary sort key to the <option> value. The option value can be one of the following: cid, subs, pending, msgs_to, msgs_from, bytes_to, bytes_from, lang, version.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    You can also set the sort option on the command line using the -sort flag. For example: nats-top -sort bytes_to.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    limit

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Use the n<limit> command to set the sample size of connections to request from the server.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    You can also set this on the command line using the -n num_connections flag. For example: nats-top -n 1.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Note that if n<limit> is used in conjunction with -sort, the server will respect both options allowing queries such as the following: Query for the connection with largest number of subscriptions: nats-top -n 1 -sort subs.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    s, ? and q Commands

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Use the s command to toggle displaying connection subscriptions.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Use the ? command to show help message with options.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Use the q command to quit nats-top.

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    Tutorial

                                                                                                                                                                                                                    +

                                                                                                                                                                                                                    For a walkthrough with nats-top check out the tutorial.

                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    +
                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                    results matching ""

                                                                                                                                                                                                                    +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                      No results matching ""

                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nats_top/tutorial.html b/docs/nats_tools/nats_top/tutorial.html new file mode 100644 index 0000000..94564a0 --- /dev/null +++ b/docs/nats_tools/nats_top/tutorial.html @@ -0,0 +1,2423 @@ + + + + + + + Tutorial ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                      NATS TOP Tutorial

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      You can use nats-top to monitor in realtime NATS server connections and message statistics.

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      Prerequisites

                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                      1. Install nats-top

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      % go get github.com/nats-io/nats-top
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      You may need to run the following instead:

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      % sudo -E go get github.com/nats-io/nats-top
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      2. Start the NATS server with monitoring enabled

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      % nats-server -m 8222
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      3. Start nats-top

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      % nats-top
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      Result:

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      nats-server version 0.6.6 (uptime: 2m2s)
                                                                                                                                                                                                                      +Server:
                                                                                                                                                                                                                      +  Load: CPU:  0.0%  Memory: 6.3M  Slow Consumers: 0
                                                                                                                                                                                                                      +  In:   Msgs: 0  Bytes: 0  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +  Out:  Msgs: 0  Bytes: 0  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +Connections: 0
                                                                                                                                                                                                                      +  HOST                 CID      SUBS    PENDING     MSGS_TO     MSGS_FROM   BYTES_TO    BYTES_FROM  LANG     VERSION
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      4. Run NATS client programs

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      Run some NATS client programs and exchange messages.

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      For the best experience, you will want to run multiple subscribers, at least 2 or 3. Refer to the example pub-sub clients.

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      5. Check nats-top for statistics

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      nats-server version 0.6.6 (uptime: 30m51s)
                                                                                                                                                                                                                      +Server:
                                                                                                                                                                                                                      +  Load: CPU:  0.0%  Memory: 10.3M  Slow Consumers: 0
                                                                                                                                                                                                                      +  In:   Msgs: 56  Bytes: 302  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +  Out:  Msgs: 98  Bytes: 512  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +Connections: 3
                                                                                                                                                                                                                      +  HOST                 CID      SUBS    PENDING     MSGS_TO     MSGS_FROM   BYTES_TO    BYTES_FROM  LANG     VERSION
                                                                                                                                                                                                                      +  ::1:58651            6        1       0           52          0           260         0           go       1.1.0
                                                                                                                                                                                                                      +  ::1:58922            38       1       0           21          0           105         0           go       1.1.0
                                                                                                                                                                                                                      +  ::1:58953            39       1       0           21          0           105         0           go       1.1.0
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      6. Sort nats-top statistics

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      In nats-top, enter the command o followed by the option, such as bytes_to. You see that nats-top sorts the BYTES_TO column in ascending order.

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      nats-server version 0.6.6 (uptime: 45m40s)
                                                                                                                                                                                                                      +Server:
                                                                                                                                                                                                                      +  Load: CPU:  0.0%  Memory: 10.4M  Slow Consumers: 0
                                                                                                                                                                                                                      +  In:   Msgs: 81  Bytes: 427  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +  Out:  Msgs: 154  Bytes: 792  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +sort by [bytes_to]:
                                                                                                                                                                                                                      +Connections: 3
                                                                                                                                                                                                                      +  HOST                 CID      SUBS    PENDING     MSGS_TO     MSGS_FROM   BYTES_TO    BYTES_FROM  LANG     VERSION
                                                                                                                                                                                                                      +  ::1:59259            83       1       0           4           0           20          0           go       1.1.0
                                                                                                                                                                                                                      +  ::1:59349            91       1       0           2           0           10          0           go       1.1.0
                                                                                                                                                                                                                      +  ::1:59342            90       1       0           0           0           0           0           go       1.1.0
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      7. Use different sort options

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      Use some different sort options to explore nats-top, such as:

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      cid, subs, pending, msgs_to, msgs_from, bytes_to, bytes_from, lang, version

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      You can also set the sort option on the command line using the -sort flag. For example: nats-top -sort bytes_to.

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      8. Display the registered subscriptions.

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      In nats-top, enter the command s to toggle displaying connection subscriptions. When enabled, you see the subscription subject in nats-top table:

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      nats-server version 0.6.6 (uptime: 1h2m23s)
                                                                                                                                                                                                                      +Server:
                                                                                                                                                                                                                      +  Load: CPU:  0.0%  Memory: 10.4M  Slow Consumers: 0
                                                                                                                                                                                                                      +  In:   Msgs: 108  Bytes: 643  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +  Out:  Msgs: 185  Bytes: 1.0K  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +Connections: 3
                                                                                                                                                                                                                      +  HOST                 CID      SUBS    PENDING     MSGS_TO     MSGS_FROM   BYTES_TO    BYTES_FROM  LANG     VERSION SUBSCRIPTIONS
                                                                                                                                                                                                                      +  ::1:59708            115      1       0           6           0           48          0           go       1.1.0   foo.bar
                                                                                                                                                                                                                      +  ::1:59758            122      1       0           1           0           8           0           go       1.1.0   foo
                                                                                                                                                                                                                      +  ::1:59817            124      1       0           0           0           0           0           go       1.1.0   foo
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      9. Quit nats-top

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      Use the q command to quit nats-top.

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      10. Restart nats-top with a specified query

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      For example, to query for the connection with largest number of subscriptions:

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      % nats-top -n 1 -sort subs
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      Result: nats-top displays only the client connection with the largest number of subscriptions:

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      nats-server version 0.6.6 (uptime: 1h7m0s)
                                                                                                                                                                                                                      +Server:
                                                                                                                                                                                                                      +  Load: CPU:  0.0%  Memory: 10.4M  Slow Consumers: 0
                                                                                                                                                                                                                      +  In:   Msgs: 109  Bytes: 651  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +  Out:  Msgs: 187  Bytes: 1.0K  Msgs/Sec: 0.0  Bytes/Sec: 0
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +Connections: 3
                                                                                                                                                                                                                      +  HOST                 CID      SUBS    PENDING     MSGS_TO     MSGS_FROM   BYTES_TO    BYTES_FROM  LANG     VERSION
                                                                                                                                                                                                                      +  ::1:59708            115      1       0           6           0           48          0           go       1.1.0
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      +
                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                      results matching ""

                                                                                                                                                                                                                      +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                        No results matching ""

                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/natsbench.html b/docs/nats_tools/natsbench.html new file mode 100644 index 0000000..51db70a --- /dev/null +++ b/docs/nats_tools/natsbench.html @@ -0,0 +1,2424 @@ + + + + + + + nats-bench ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                        Benchmarking

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        NATS is fast and lightweight and places a priority on performance. NATS provides tools for measuring performance. In this tutorial you learn how to benchmark and tune NATS on your systems and environment.

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Prerequisites

                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                        Start the NATS server with monitoring enabled

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % nats-server -m 8222
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Verify that the NATS server starts successfully, as well as the HTTP monitor:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        [18541] 2016/10/31 13:26:32.037819 [INF] Starting nats-server version 0.9.4
                                                                                                                                                                                                                        +[18541] 2016/10/31 13:26:32.037912 [INF] Starting http monitor on 0.0.0.0:8222
                                                                                                                                                                                                                        +[18541] 2016/10/31 13:26:32.037997 [INF] Listening for client connections on 0.0.0.0:4222
                                                                                                                                                                                                                        +[18541] 2016/10/31 13:26:32.038020 [INF] Server is ready
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Installing and running the benchmark utility

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        The NATS benchmark can be installed and run via Go. Ensure your golang environment is setup.

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        There are two approaches; you can either install the nats-bench utility in the directory specified in your GOBIN environment variable:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % go install $GOPATH/src/github.com/nats-io/go-nats/examples/nats-bench.go
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        ... or you can simply run it via go run:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % go run $GOPATH/src/github.com/nats-io/go-nats/examples/nats-bench.go
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        On windows use the % environment variable syntax, replacing $GOPATH with %GOPATH%.

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        For the purpose of this tutorial, we'll assume that you chose the first option, and that you've added the GOBIN environment variable to your PATH.

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        The nats-bench utility is straightforward to use. The options are as follows:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % nats-bench -h
                                                                                                                                                                                                                        +Usage: nats-bench [-s server (nats://localhost:4222)] [--tls] [-np NUM_PUBLISHERS] [-ns NUM_SUBSCRIBERS] [-n NUM_MSGS] [-ms MESSAGE_SIZE] [-csv csvfile] <subject>
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        The options are self-explanatory. Each publisher or subscriber runs in its own go routine with its own NATS connection.

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Run a publisher throughput test

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Let's run a test to see how fast a single publisher can publish one million 16 byte messages to the NATS server.

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % nats-bench -np 1 -n 100000 -ms 16 foo
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        The output tells you the number of messages and the number of payload bytes that the client was able to publish per second:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        Starting benchmark [msgs=100000, msgsize=16, pubs=1, subs=0]
                                                                                                                                                                                                                        +Pub stats: 7,055,644 msgs/sec ~ 107.66 MB/sec
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Now increase the number of messages published:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % nats-bench -np 1 -n 10000000 -ms 16 foo
                                                                                                                                                                                                                        +Starting benchmark [msgs=10000000, msgsize=16, pubs=1, subs=0]
                                                                                                                                                                                                                        +Pub stats: 7,671,570 msgs/sec ~ 117.06 MB/sec
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Run a publish/subscribe throughput test

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        When using both publishers and subscribers, nats-bench reports aggregate, as well as individual publish and subscribe throughput performance.

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Let's look at throughput for a single publisher with a single subscriber:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % nats-bench -np 1 -ns 1 -n 100000 -ms 16 foo
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Note that the output shows the aggregate throughput as well as the individual publisher and subscriber performance:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        Starting benchmark [msgs=100000, msgsize=16, pubs=1, subs=1]
                                                                                                                                                                                                                        +NATS Pub/Sub stats: 2,009,230 msgs/sec ~ 30.66 MB/sec
                                                                                                                                                                                                                        + Pub stats: 1,076,537 msgs/sec ~ 16.43 MB/sec
                                                                                                                                                                                                                        + Sub stats: 1,004,615 msgs/sec ~ 15.33 MB/sec
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Run a 1:N throughput test

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        When specifying multiple publishers, or multiple subscribers, nats-bench will also report statistics for each publisher and subscriber individually, along with min/max/avg and standard deviation.

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Let's increase both the number of messages, and the number of subscribers.:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % nats-bench -np 1 -ns 5 -n 10000000 -ms 16 foo
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Output:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        Starting benchmark [msgs=10000000, msgsize=16, pubs=1, subs=5]
                                                                                                                                                                                                                        +NATS Pub/Sub stats: 5,730,851 msgs/sec ~ 87.45 MB/sec
                                                                                                                                                                                                                        + Pub stats: 955,279 msgs/sec ~ 14.58 MB/sec
                                                                                                                                                                                                                        + Sub stats: 4,775,709 msgs/sec ~ 72.87 MB/sec
                                                                                                                                                                                                                        +  [1] 955,157 msgs/sec ~ 14.57 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [2] 955,150 msgs/sec ~ 14.57 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [3] 955,157 msgs/sec ~ 14.57 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [4] 955,156 msgs/sec ~ 14.57 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [5] 955,153 msgs/sec ~ 14.57 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  min 955,150 | avg 955,154 | max 955,157 | stddev 2 msgs
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Run a N:M throughput test

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        When more than 1 publisher is specified, nats-bench evenly distributes the total number of messages (-n) across the number of publishers (-np).

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Now let's increase the number of publishers and examine the output:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        % nats-bench -np 5 -ns 5 -n 10000000 -ms 16 foo
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        The output:

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        Starting benchmark [msgs=10000000, msgsize=16, pubs=5, subs=5]
                                                                                                                                                                                                                        +NATS Pub/Sub stats: 6,716,465 msgs/sec ~ 102.49 MB/sec
                                                                                                                                                                                                                        + Pub stats: 1,119,653 msgs/sec ~ 17.08 MB/sec
                                                                                                                                                                                                                        +  [1] 226,395 msgs/sec ~ 3.45 MB/sec (2000000 msgs)
                                                                                                                                                                                                                        +  [2] 225,955 msgs/sec ~ 3.45 MB/sec (2000000 msgs)
                                                                                                                                                                                                                        +  [3] 225,889 msgs/sec ~ 3.45 MB/sec (2000000 msgs)
                                                                                                                                                                                                                        +  [4] 224,552 msgs/sec ~ 3.43 MB/sec (2000000 msgs)
                                                                                                                                                                                                                        +  [5] 223,933 msgs/sec ~ 3.42 MB/sec (2000000 msgs)
                                                                                                                                                                                                                        +  min 223,933 | avg 225,344 | max 226,395 | stddev 937 msgs
                                                                                                                                                                                                                        + Sub stats: 5,597,054 msgs/sec ~ 85.40 MB/sec
                                                                                                                                                                                                                        +  [1] 1,119,461 msgs/sec ~ 17.08 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [2] 1,119,466 msgs/sec ~ 17.08 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [3] 1,119,444 msgs/sec ~ 17.08 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [4] 1,119,444 msgs/sec ~ 17.08 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  [5] 1,119,430 msgs/sec ~ 17.08 MB/sec (10000000 msgs)
                                                                                                                                                                                                                        +  min 1,119,430 | avg 1,119,449 | max 1,119,466 | stddev 12 msgs
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        +
                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                        results matching ""

                                                                                                                                                                                                                        +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                          No results matching ""

                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nk.html b/docs/nats_tools/nk.html new file mode 100644 index 0000000..9f2b3e0 --- /dev/null +++ b/docs/nats_tools/nk.html @@ -0,0 +1,2346 @@ + + + + + + + nk ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                          NK

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          nk is a command line tool that generates nkeys. NKeys are a highly secure public-key signature system based on Ed25519.

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          With NKeys the server can verify identity without ever storing secrets on the server. The authentication system works by requiring a connecting client to provide its public key and digitally sign a challenge with its private key. The server generates a random challenge with every connection request, making it immune to playback attacks. The generated signature is validated a public key, thus proving the identity of the client. If the public key validation succeeds, authentication succeeds.

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          NKey is an awesome replacement for token authentication, because a connecting client will have to prove it controls the private key for the authorized public key.

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          Installing nk

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          To get started with NKeys, you’ll need the nk tool from https://github.com/nats-io/nkeys/nk repository. If you have go installed, enter the following at a command prompt:

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          > go get github.com/nats-io/nk
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          Generating NKeys and Configuring the Server

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          To generate a User NKEY:

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          > nk -gen user -pubout
                                                                                                                                                                                                                          +SUACSSL3UAHUDXKFSNVUZRF5UHPMWZ6BFDTJ7M6USDXIEDNPPQYYYCU3VY
                                                                                                                                                                                                                          +UDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4
                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          The first output line starts with the letter S for Seed. The second letter U stands for User. Seeds are private keys; you should treat them as secrets and guard them with care.

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          The second line starts with the letter U for User, and is a public key which can be safely shared.

                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          +
                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                          results matching ""

                                                                                                                                                                                                                          +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                            No results matching ""

                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nsc/index.html b/docs/nats_tools/nsc/index.html new file mode 100644 index 0000000..b4aa1b2 --- /dev/null +++ b/docs/nats_tools/nsc/index.html @@ -0,0 +1,2358 @@ + + + + + + + nsc ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            + + + + + + + + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                            NATS Account Configuration

                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            NATS account configurations are built using the nsc tool. The NSC tool allows you to:

                                                                                                                                                                                                                            +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                            • Create and Edit Operators, Accounts, Users
                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                            • Manage subscribe and publish permissions for Users
                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                            • Add and delete Exports and Imports
                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                            • Generate Activations
                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                            • Generate User credential files
                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                            • Describe Operators, Accounts, Users, and Activations
                                                                                                                                                                                                                            • +
                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            Installation

                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            Installing nsc is easy:

                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            curl -L https://raw.githubusercontent.com/nats-io/nsc/master/install.py | python
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            The script will download the latest version of nsc and install it into your system.

                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            Tutorials

                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            You can find various task-oriented tutorials to working with the tool here:

                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                            Tool Documentation

                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            For more specific browsing of the tool syntax, check out the nsc tool documentation. +It can be found within the tool itself:

                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            > nsc help
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +

                                                                                                                                                                                                                            Or an online version here

                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                            results matching ""

                                                                                                                                                                                                                            +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                              No results matching ""

                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              + + + + + + + + + + + + + + +
                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nsc/nsc.html b/docs/nats_tools/nsc/nsc.html new file mode 100644 index 0000000..c2fab73 --- /dev/null +++ b/docs/nats_tools/nsc/nsc.html @@ -0,0 +1,2500 @@ + + + + + + + Basics ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              + + + + + + + + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                              NSC

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              NATS uses JWTs to armor the various identity and authorization artifacts. These JWTs are created with the nsc tool. NSC simplifies the tasks of creating and managing identities and other JWT artifacts.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              There’s a logical hierarchy to the entities:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                              • Operators are responsible for running nats-servers, and signing account JWTs that set the limits on what an account can do, such as the number of connections, data limits, etc.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                              • Accounts are responsible for issuing user JWTs, and for declaring what subjects can be exported to other accounts, and what subjects they import from other accounts and what the local subjects for those imports are.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                              • Users are issued by an account, and encode limits regarding usage and authorization over the subject space.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              NSC allows you to create, edit, delete these entities, and will be central to all account based configuration.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              In this guide, you’ll run end-to-end on some of the configuration scenarios:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                              • generate JWTs
                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                              • make JWTs accessible to a nats-server
                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                              • configure a nats-server to use JWTs
                                                                                                                                                                                                                              • +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s run through the process of creating some identities and JWTs and work through the process.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              By default JWTs are written to ~/.nsc and secrets to ~/.nkeys. You can easily change those locations by setting NSC_HOME and NKEYS_PATH respectively in your environment to your desired locations.

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              The $NKEYS_PATH stores secrets. Since nkeys relies on cryptographic signatures to prove identity, anyone with access to your private keys will be able to assume your identity. With that said, treat them as secrets and guard them carefully.

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s see what settings nsc has in its environment:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc env
                                                                                                                                                                                                                              +╭──────────────────────────────────────────╮
                                                                                                                                                                                                                              +│             NSC Environment              │
                                                                                                                                                                                                                              +├──────────────────┬─────┬─────────────────┤
                                                                                                                                                                                                                              +│ Setting          │ Set │ Effective Value │
                                                                                                                                                                                                                              +├──────────────────┼─────┼─────────────────┤
                                                                                                                                                                                                                              +│ $NKEYS_PATH      │ No  │ ~/.nkeys        │
                                                                                                                                                                                                                              +│ $NSC_HOME        │ No  │ ~/.nsc          │
                                                                                                                                                                                                                              +│ Config           │     │ ~/.nsc/nsc.json │
                                                                                                                                                                                                                              +├──────────────────┼─────┼─────────────────┤
                                                                                                                                                                                                                              +│ Stores Dir       │     │ ~/.nsc/nats     │
                                                                                                                                                                                                                              +│ Default Operator │     │                 │
                                                                                                                                                                                                                              +│ Default Account  │     │                 │
                                                                                                                                                                                                                              +│ Default Cluster  │     │                 │
                                                                                                                                                                                                                              +╰──────────────────┴─────┴─────────────────╯
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              By default you’ll see that generated secrets are stored in ~/.nkeys, and configurations in ~/.nsc/nats. All operations are assumed to be in a context of the current operator and current account. When working with multiple operators and accounts you may need to set the current one. You can easily do so by issuing the nsc env and provide flags to set the current operator or account. See nsc env —help for more details.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Creating an Operator

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s create an operator called Test:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc add operator -n Test
                                                                                                                                                                                                                              +Generated operator key - private key stored “~/.nkeys/Test/Test.nk”
                                                                                                                                                                                                                              +Success! - added operator "Test"
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              With the above incantation, the tool generated an NKEY for the operator, stored the private key safely in ~/.nkeys/Test/Test.nk. The file contains a single line, with the seed value for the NKEY.

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              You can tell the key is a seed if it starts with the letter S. The type of the key is will be the second letter an O, A or U for Operator, Account or User. If the key does not start with an S you have instead a public key.

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              The tool also created a JWT with all default settings for the operator test, and stored it in ~/.nsc/nats/Test/Test.jwt. The ~/.nsc/nats/Test directory will also contain a directory where accounts related to this operator will live.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              You can view the JWT by entering the command:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc describe operator
                                                                                                                                                                                                                              +╭───────────────────────────────────────╮
                                                                                                                                                                                                                              +│           Operator Details            │
                                                                                                                                                                                                                              +├─────────────┬─────────────────────────┤
                                                                                                                                                                                                                              +│ Name        │ Test                    │
                                                                                                                                                                                                                              +│ Operator ID │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                              +│ Issuer ID   │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                              +│ Issued      │ 2019-04-24 19:48:55 UTC │
                                                                                                                                                                                                                              +│ Expires     │                         │
                                                                                                                                                                                                                              +╰─────────────┴─────────────────────────╯
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Note that the Operator ID is truncated to simplify the output, to get the full ID, do:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc describe operator -W
                                                                                                                                                                                                                              +╭────────────────────────────────────────────────────────────────────────╮
                                                                                                                                                                                                                              +│                            Operator Details                            │
                                                                                                                                                                                                                              +├─────────────┬──────────────────────────────────────────────────────────┤
                                                                                                                                                                                                                              +│ Name        │ Test                                                     │
                                                                                                                                                                                                                              +│ Operator ID │ OAYI3YUZSWDNMERD2IN3HZSIP3JA2E3VDTXSTEVOIII273XL2NABJP64 │
                                                                                                                                                                                                                              +│ Issuer ID   │ OAYI3YUZSWDNMERD2IN3HZSIP3JA2E3VDTXSTEVOIII273XL2NABJP64 │
                                                                                                                                                                                                                              +│ Issued      │ 2019-04-24 19:48:55 UTC                                  │
                                                                                                                                                                                                                              +│ Expires     │                                                          │
                                                                                                                                                                                                                              +╰─────────────┴──────────────────────────────────────────────────────────╯
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              With an operator, we are ready to create our first account.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Creating an Account

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s create an account called TestAccount:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc add account -n TestAccount
                                                                                                                                                                                                                              +Generated account key - private key stored “~/.nkeys/Test/accounts/TestAccount/TestAccount.nk"
                                                                                                                                                                                                                              +Success! - added account "TestAccount"
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              As we did with the operator, we can describe the account:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc describe account 
                                                                                                                                                                                                                              +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                              +│                  Account Details                   │
                                                                                                                                                                                                                              +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                              +│ Name                     │ TestAccount             │
                                                                                                                                                                                                                              +│ Account ID               │ AC7PO3MREV26            │
                                                                                                                                                                                                                              +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                              +│ Issued                   │ 2019-04-24 19:58:01 UTC │
                                                                                                                                                                                                                              +│ Expires                  │                         │
                                                                                                                                                                                                                              +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                              +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                              +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                              +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                              +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                              +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                              +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                              +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                              +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                              +│ Imports                  │ None                    │
                                                                                                                                                                                                                              +│ Exports                  │ None                    │
                                                                                                                                                                                                                              +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Again, specifying the -W flag will print the complete account ID (the public key identifying the account).

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Note that the issuer for the account is the ID for the operator (the public key identifying the operator).

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Now we are ready to add a user.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Creating a User

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s add a user named ‘TestUser’:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc add user -n TestUser
                                                                                                                                                                                                                              +Generated user key - private key stored "~/.nkeys/Test/accounts/TestAccount/users/TestUser.nk"
                                                                                                                                                                                                                              +Generated user creds file "~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds"
                                                                                                                                                                                                                              +Success! - added user "TestUser" to "TestAccount"
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Note that when we added the user, we got a message telling us about a .creds file being created. The .creds file contains the JWT describing the user, and the private (seed) key for the user. This file is formatted in a special way for use by nats client libraries. Client libraries can extract the JWT and seed key, and connect to a server expecting JWT authentication, provide the JWT and use the private key to sign the nonce to verify its identity.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              And let’s describe it:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nsc describe user
                                                                                                                                                                                                                              +╭───────────────────────────────────────────╮
                                                                                                                                                                                                                              +│                   User                    │
                                                                                                                                                                                                                              +├─────────────────┬─────────────────────────┤
                                                                                                                                                                                                                              +│ Name            │ TestUser                │
                                                                                                                                                                                                                              +│ User ID         │ UCQB7NONBKRC            │
                                                                                                                                                                                                                              +│ Issuer ID       │ AC7PO3MREV26            │
                                                                                                                                                                                                                              +│ Issued          │ 2019-04-24 20:36:25 UTC │
                                                                                                                                                                                                                              +│ Expires         │                         │
                                                                                                                                                                                                                              +├─────────────────┼─────────────────────────┤
                                                                                                                                                                                                                              +│ Max Messages    │ Unlimited               │
                                                                                                                                                                                                                              +│ Max Msg Payload │ Unlimited               │
                                                                                                                                                                                                                              +│ Network Src     │ Any                     │
                                                                                                                                                                                                                              +│ Time            │ Any                     │
                                                                                                                                                                                                                              +╰─────────────────┴─────────────────────────╯
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s put all of this together, and create a simple server configuration that accepts sessions from TestUser.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Account Server Configuration

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              To configure a server to use accounts you need an account resolver. An account resolver exposes a URL where a nats-server can query for JWTs belonging to an account.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              A simple built-in resolver is the MEMORY resolver which simply statically maps account public keys to an account JWT in the server’s configuration file. It is somewhat easier to configure because it doesn’t require another moving part, but fails provide the needed experience of setting up an account server. Let’s setup an Account Server.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Installing the Account Server

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > go get github.com/nats-io/nats-account-server
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              The account server has options to enable you to use an nsc directory directly. Let’s start one:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > nats-account-server -nsc ~/.nsc/nats/Test
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Above we pointed the account server to our nsc data directory (more specifically to the Test operator that we created earlier). By default, the server listens on the localhost at port 9090.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              We are now ready to configure the nats-server

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              NATS Server Configuration

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              If you don’t have a nats-server installed, let’s do that now:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > go get github.com/nats-io/nats-server
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s create a configuration that references our operator JWT and the nats-account-server as a resolver:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              operator: /Users/synadia/.nsc/nats/Test/Test.jwt
                                                                                                                                                                                                                              +resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              At minimum the server requires the operator JWT, which we have pointed at directly, and a resolver. The resolver has two types MEM and URL. We are interested in the URL since we want the nats-server to talk to the account server. Note we put the URL of the server with the path /jwt/v1/accounts. Currently this is where the account server expects requests for account information.

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Client Testing

                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Let’s install some tooling:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              > go get github.com/nats-io/go-nats/examples/nats-pub
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +> go get github.com/nats-io/go-nats/examples/nats-sub
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Create a subscriber:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              nats-sub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds ">"
                                                                                                                                                                                                                              +Listening on [>]
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Publish a message:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              nats-pub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds hello NATS 
                                                                                                                                                                                                                              +Published [hello] : 'NATS'
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +

                                                                                                                                                                                                                              Subscriber shows:

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              [#1] Received on [hello]: ’NATS’
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + + +
                                                                                                                                                                                                                              + +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              + +

                                                                                                                                                                                                                              results matching ""

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                No results matching ""

                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nsc/services.html b/docs/nats_tools/nsc/services.html new file mode 100644 index 0000000..aa50e74 --- /dev/null +++ b/docs/nats_tools/nsc/services.html @@ -0,0 +1,2556 @@ + + + + + + + Services ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                + + + + + + + + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                Services

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                To share services that other accounts can reach via request reply, you have to Export a Service. Services are associated with the account performing the replies and are advertised in the exporting accounts' JWT.

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Adding a Public Service Export

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                To add a service to your account:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc add export --name "srv" --subject "help" --service
                                                                                                                                                                                                                                +Success! - added public service export "srv"
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                To review the service export:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc describe account
                                                                                                                                                                                                                                +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                +│                  Account Details                   │
                                                                                                                                                                                                                                +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                +│ Name                     │ TestAccount             │
                                                                                                                                                                                                                                +│ Account ID               │ AC7PO3MREV26            │
                                                                                                                                                                                                                                +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                +│ Issued                   │ 2019-04-29 14:20:13 UTC │
                                                                                                                                                                                                                                +│ Expires                  │                         │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Imports                  │ None                    │
                                                                                                                                                                                                                                +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +╭───────────────────────────────────╮
                                                                                                                                                                                                                                +│              Exports              │
                                                                                                                                                                                                                                +├──────┬─────────┬─────────┬────────┤
                                                                                                                                                                                                                                +│ Name │ Type    │ Subject │ Public │
                                                                                                                                                                                                                                +├──────┼─────────┼─────────┼────────┤
                                                                                                                                                                                                                                +│ help │ Service │ help    │ Yes    │
                                                                                                                                                                                                                                +╰──────┴─────────┴─────────┴────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Importing a Service

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Importing a service enables you to send requests to the remote Account. To import a Service, you have to create an Import. To create an import you need to know:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                • The exporting account’s public key
                                                                                                                                                                                                                                • +
                                                                                                                                                                                                                                • The subject the service is listening on
                                                                                                                                                                                                                                • +
                                                                                                                                                                                                                                • You can map the service’s subject to a different subject
                                                                                                                                                                                                                                • +
                                                                                                                                                                                                                                • Self-imports are not valid; you can only import services from other accounts.
                                                                                                                                                                                                                                • +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                To learn how to inspect a JWT from an account server, check this article.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc add import --src-account AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H --remote-subject help --service
                                                                                                                                                                                                                                +Success! - added service import "help"
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Verifying our handywork:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc describe account
                                                                                                                                                                                                                                +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                +│                  Account Details                   │
                                                                                                                                                                                                                                +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                +│ Name                     │ AccountB                │
                                                                                                                                                                                                                                +│ Account ID               │ AAL5Q2B3SMSO            │
                                                                                                                                                                                                                                +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                +│ Issued                   │ 2019-04-29 14:37:49 UTC │
                                                                                                                                                                                                                                +│ Expires                  │                         │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Exports                  │ None                    │
                                                                                                                                                                                                                                +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +╭─────────────────────────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                +│                                 Imports                                 │
                                                                                                                                                                                                                                +├─────────┬─────────┬─────────┬─────────┬─────────┬──────────────┬────────┤
                                                                                                                                                                                                                                +│ Name    │ Type    │ Remote  │ Local   │ Expires │ From Account │ Public │
                                                                                                                                                                                                                                +├─────────┼─────────┼─────────┼─────────┼─────────┼──────────────┼────────┤
                                                                                                                                                                                                                                +│ help    │ Service │ help    │ help    │         │ AC7PO3MREV26 │ Yes    │
                                                                                                                                                                                                                                +╰─────────┴─────────┴─────────┴─────────┴─────────┴──────────────┴────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Testing the Service

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                To test the service, we can install the nats-req and nats-rply tools:

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Set up a process to handle the request:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > go get github.com/nats-io/go-nats/examples/nats-rply
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +> nats-rply -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds "help" "I will help"                
                                                                                                                                                                                                                                +Listening on [help]
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Send the request:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > go get github.com/nats-io/go-nats/examples/nats-req
                                                                                                                                                                                                                                +> nats-req -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds help me
                                                                                                                                                                                                                                +Published [help] : 'me'
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                The service receives the request:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                [#1] Received on [help]: 'me'
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                And the response is received by the requestor:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                Received  [_INBOX.v6KAX0v1bu87k49hbg3dgn.StIGJF0D] : 'I will help'
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Securing Services

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                If you want to create a service that is only accessible to accounts you designate you can create a private service. The export will be visible in your account, but subscribing accounts will require an authorization token that must be created by you and generated specifically for the requesting account.

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Let’s create an account and user for our stream client:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc add account --name AccountB
                                                                                                                                                                                                                                +Generated account key - private key stored “~/.nkeys/Test/accounts/AccountB/AccountB"
                                                                                                                                                                                                                                +Success! - added account "AccountB"
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +> nsc add user --name userb
                                                                                                                                                                                                                                +Generated user key - private key stored "~/.nkeys/Test/accounts/AccountB/users/userb”
                                                                                                                                                                                                                                +Generated user creds file "~/.nkeys/Test/accounts/AccountB/users/userb.creds"
                                                                                                                                                                                                                                +Success! - added user “userb” to “AccountB”
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                The authorization token is simply a JWT signed by your account where you authorize the client account to import your service.

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Creating a Private Service Export

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc add export --name phelp --subject "help.>" --private --service
                                                                                                                                                                                                                                +Success! - added private service export "phelp"
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                As before, we declared an export, but this time we added the --private flag. The other thing to note is that the subject for the request has a wildcard. This enables the account to map specific subjects to specifically authorized accounts.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc describe account
                                                                                                                                                                                                                                +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                +│                  Account Details                   │
                                                                                                                                                                                                                                +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                +│ Name                     │ TestAccount             │
                                                                                                                                                                                                                                +│ Account ID               │ AC7PO3MREV26            │
                                                                                                                                                                                                                                +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                +│ Issued                   │ 2019-04-29 14:59:42 UTC │
                                                                                                                                                                                                                                +│ Expires                  │                         │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Imports                  │ None                    │
                                                                                                                                                                                                                                +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +╭────────────────────────────────────╮
                                                                                                                                                                                                                                +│              Exports               │
                                                                                                                                                                                                                                +├───────┬─────────┬─────────┬────────┤
                                                                                                                                                                                                                                +│ Name  │ Type    │ Subject │ Public │
                                                                                                                                                                                                                                +├───────┼─────────┼─────────┼────────┤
                                                                                                                                                                                                                                +│ phelp │ Service │ help.>  │ No     │
                                                                                                                                                                                                                                +╰───────┴─────────┴─────────┴────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Generating an Activation Token

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                For the foreign account to import a private service and be able to send requests, you have to generate an activation token. The activation token in addition to granting permission to the account allows you to subset the service’s subject:

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                To generate a token, you’ll need to know the public key of the account importing the service.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc generate activation -o /tmp/activation.jwt --target-account AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4 --subject "help.AAL5Q2B3SM" --service
                                                                                                                                                                                                                                +generated "phelp" activation for account "AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4".
                                                                                                                                                                                                                                +JTI is "IY4ZUWLNLOTO5N5UDLOFEBCOMHB6MKQMK4ZELA2BSPKMXSEARXOA"
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                In the above invocation, we generated an activation redirecting the output to /tmp/activation.jwt. The activation only allows the client account to perform requests on help.AAL5Q2B3SM.

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                For completeness, the contents of the JWT file looks like this:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > cat /tmp/activation.jwt
                                                                                                                                                                                                                                +-----BEGIN NATS ACTIVATION JWT-----
                                                                                                                                                                                                                                +eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJJWTRaVVdMTkxPVE81TjVVRExPRkVCQ09NSEI2TUtRTUs0WkVMQTJCU1BLTVhTRUFSWE9BIiwiaWF0IjoxNTU2NTUwMDczLCJpc3MiOiJBQzdQTzNNUkVWMjZVM0xGWkZQNUJOM0hBSTMyWDNQS0xCUlZNUEFFVExFSFdQUUVVRzdFSlk0SCIsIm5hbWUiOiJoZWxwLkFBTDVRMkIzU00iLCJzdWIiOiJBQUw1UTJCM1NNU081QVMzQVBKRlVOQUlLVUNFUUpQQVE3NlhFQlRWT0NRQ1hYR0tQM1lNR0dONCIsInR5cGUiOiJhY3RpdmF0aW9uIiwibmF0cyI6eyJzdWJqZWN0IjoiaGVscC5BQUw1UTJCM1NNIiwidHlwZSI6InNlcnZpY2UifX0.VFYHPA0e67RFR-XFy7Q7pS90hzZvP5k3OsldjaDrIXP4UdpuQeUhv9qK9EMK40pcgH6NzJ7gmaZLU6RpAcbXAg
                                                                                                                                                                                                                                +------END NATS ACTIVATION JWT------
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                When decoded it looks like this:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc describe jwt -f /tmp/activation.jwt
                                                                                                                                                                                                                                +╭───────────────────────────────────────────╮
                                                                                                                                                                                                                                +│                Activation                 │
                                                                                                                                                                                                                                +├─────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                +│ Import Type     │ Service                 │
                                                                                                                                                                                                                                +│ Import Subject  │ help.AAL5Q2B3SM         │
                                                                                                                                                                                                                                +│ Account ID      │ AAL5Q2B3SMSO            │
                                                                                                                                                                                                                                +│ Issuer ID       │ AC7PO3MREV26            │
                                                                                                                                                                                                                                +│ Issued          │ 2019-04-29 15:01:13 UTC │
                                                                                                                                                                                                                                +│ Expires         │                         │
                                                                                                                                                                                                                                +├─────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Max Messages    │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Msg Payload │ Unlimited               │
                                                                                                                                                                                                                                +│ Network Src     │ Any                     │
                                                                                                                                                                                                                                +│ Time            │ Any                     │
                                                                                                                                                                                                                                +╰─────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                The token can be shared directly with the client account.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                If you manage many tokens for many accounts, you may want to host activation tokens on a web server and share the URL with the account. The benefit to the hosted approach is that any updates to the token would be available to the importing account whenever their account is updated, provided the URL you host them in is stable.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Importing a Private Service

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                As with streams, importing a private service is more natural than a public one because the activation token stores all the necessary details. Again, the token can be an actual file path or a remote URL.

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nsc describe account
                                                                                                                                                                                                                                +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                +│                  Account Details                   │
                                                                                                                                                                                                                                +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                +│ Name                     │ AccountB                │
                                                                                                                                                                                                                                +│ Account ID               │ AAL5Q2B3SMSO            │
                                                                                                                                                                                                                                +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                +│ Issued                   │ 2019-04-29 15:26:39 UTC │
                                                                                                                                                                                                                                +│ Expires                  │                         │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                +│ Exports                  │ None                    │
                                                                                                                                                                                                                                +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +╭─────────────────────────────────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                +│                                     Imports                                     │
                                                                                                                                                                                                                                +├─────────┬─────────┬─────────────────┬─────────┬─────────┬──────────────┬────────┤
                                                                                                                                                                                                                                +│ Name    │ Type    │ Remote          │ Local   │ Expires │ From Account │ Public │
                                                                                                                                                                                                                                +├─────────┼─────────┼─────────────────┼─────────┼─────────┼──────────────┼────────┤
                                                                                                                                                                                                                                +│ help    │ Service │ help.AAL5Q2B3SM │ help    │         │ AC7PO3MREV26 │ No     │
                                                                                                                                                                                                                                +╰─────────┴─────────┴─────────────────┴─────────┴─────────┴──────────────┴────────╯
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Testing the Private Service

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Start the replier:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nats-rply -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds "help.>" "I will help"
                                                                                                                                                                                                                                +Listening on [help.>]
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Send a request:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                > nats-req -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds help me           
                                                                                                                                                                                                                                +Published [help] : 'me'
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                The service receives the message:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                [#1] Received on [help.AAL5Q2B3SM]: 'me'
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                The requester receives its response:

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                Received  [_INBOX.N3IiqWbiAQfPoINCBpBrUM.ZjBNtkB3] : 'I will help'
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + + +
                                                                                                                                                                                                                                + +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                + +

                                                                                                                                                                                                                                results matching ""

                                                                                                                                                                                                                                +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                  No results matching ""

                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nsc/signing_keys.html b/docs/nats_tools/nsc/signing_keys.html new file mode 100644 index 0000000..803e251 --- /dev/null +++ b/docs/nats_tools/nsc/signing_keys.html @@ -0,0 +1,2445 @@ + + + + + + + Signing Keys ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  + + + + + + + + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                  Signing Keys

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  As previously discussed, NKEYs are identities, and if someone gets a hold of an account or operator nkey they can do everything you can do as you.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  NATS has a strategies to let you deal with scenarios where your private keys escape out in the wild.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  The first and most important line of defense is Signing Keys. Signing Keys allow you have multiple NKEY identities of the same kind (Operator or Account) that have the same degree of trust as the standard Issuer nkey.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  The concept behind the signing key is that you can issue a JWT for an operator or an account that lists multiple nkeys. Typically the issuer will match the Subject of the entity issuing the JWT. With SigningKeys, a JWT is considered valid if it is signed by the Subject of the Issuer or one of its signing keys. This enables guarding the private key of the Operator or Account more closely while allowing Accounts, Users or Activation Tokens be signed using alternate private keys.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  If an issue should arise where somehow a signing key escapes into the wild, you would remove the compromised signing key from the entity, add a new one, and reissue the entity. When a JWT is validated, if the signing key is missing, the operation is rejected. You are also on the hook to re-issue all JWTs (accounts, users, activation tokens) that were signed with the compromised signing key.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  This is effectively a large hammer. You can mitigate the process a bit by having a larger number of signing keys and then rotating the signing keys to get a distribution you can easily handle in case of a compromise. In a future release, we’ll have a revocation process were you can invalidate a single JWT by its unique JWT ID (JTI). For now a sledge hammer you have.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  With greater security process, there’s greater complexity. With that said, nsc doesn’t track public or private signing keys. As these are only identities that when in use presume a manual use. That means that you the user will have to track and manage your private keys more closely.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Let’s get a feel for the workflow. We are going to:

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                  • Create an operator with a signing key
                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                  • Create an account with a signing key
                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                  • The account will be signed using the operator’s signing key
                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                  • Create an user with the account’s signing key
                                                                                                                                                                                                                                  • +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  All signing key operations revolve around the global nsc flag -K or --private-key. Whenever you want to modify an entity, you have to supply the parent key so that the JWT is signed. Normally this happens automatically but in the case of signing keys, you’ll have to supply the flag by hand.

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Creating the operator:

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  > nsc add operator -n O2
                                                                                                                                                                                                                                  +Generated operator key - private key stored "/Users/synadia/.nkeys/O2/O2.nk"
                                                                                                                                                                                                                                  +Success! - added operator "O2"
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  To add a signing key we have to first generate one with nk. NSC doesn’t at this time offer a way to generate keys that are not associated with an entity. This means that you will have to generate and store the secrets yourself:

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  # generate an operator keypair:
                                                                                                                                                                                                                                  +> nk -gen operator -pubout
                                                                                                                                                                                                                                  +SOAIHSQSAM3ZJI5W6U5M4INH7FUCQQ5ETJ5RMPVJZCJLTDREY6ZNEE6LZQ
                                                                                                                                                                                                                                  +ODMYCI5TSZY6MFLOBBQ2RNRBRAXRKJKAC5UACRC6H6CJXCLR2STTGAAQ
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  On a production environment private keys should be saved to a file and always referenced from the secured file.

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Now we are going to edit the operator by adding a signing key with the --sk flag providing the generated operator public key (the one starting with O):

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  > nsc edit operator --sk ODMYCI5TSZY6MFLOBBQ2RNRBRAXRKJKAC5UACRC6H6CJXCLR2STTGAAQ
                                                                                                                                                                                                                                  +Success! - edited operator
                                                                                                                                                                                                                                  +-----BEGIN NATS OPERATOR JWT-----
                                                                                                                                                                                                                                  +eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPMk5BMkNaQ1ZINkQyTEVCQkNDVUFHTEZaWFJPTTdKTEs1Q1ZXRDZMVlpPVU9TUExDS0dBIiwiaWF0IjoxNTU2NTczNTYzLCJpc3MiOiJPQks3M09MUU9KV05ZVE4yTzQ2SVpRTjRXTVNDN0hWVk5BM1k2VFdQV0tDRlhJV1MzWExTQVVJUyIsIm5hbWUiOiJPMiIsInN1YiI6Ik9CSzczT0xRT0pXTllUTjJPNDZJWlFONFdNU0M3SFZWTkEzWTZUV1BXS0NGWElXUzNYTFNBVUlTIiwidHlwZSI6Im9wZXJhdG9yIiwibmF0cyI6eyJzaWduaW5nX2tleXMiOlsiT0RNWUNJNVRTWlk2TUZMT0JCUTJSTlJCUkFYUktKS0FDNVVBQ1JDNkg2Q0pYQ0xSMlNUVEdBQVEiXX19.-VNSZhmOa3TrGglTZ3pGU3BPScb0uj5rdvTHzzOyZ18_WlCBfo6H8S01S3D2qf9J36lKhPplMtupheYqEo04Aw
                                                                                                                                                                                                                                  +------END NATS OPERATOR JWT------
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Check our handy work:

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  > nsc describe operator
                                                                                                                                                                                                                                  +╭────────────────────────────────────────╮
                                                                                                                                                                                                                                  +│            Operator Details            │
                                                                                                                                                                                                                                  +├──────────────┬─────────────────────────┤
                                                                                                                                                                                                                                  +│ Name         │ O2                      │
                                                                                                                                                                                                                                  +│ Operator ID  │ OBK73OLQOJWN            │
                                                                                                                                                                                                                                  +│ Issuer ID    │ OBK73OLQOJWN            │
                                                                                                                                                                                                                                  +│ Issued       │ 2019-04-29 21:32:43 UTC │
                                                                                                                                                                                                                                  +│ Expires      │                         │
                                                                                                                                                                                                                                  +├──────────────┼─────────────────────────┤
                                                                                                                                                                                                                                  +│ Signing Keys │ ODMYCI5TSZY6            │
                                                                                                                                                                                                                                  +╰──────────────┴─────────────────────────╯
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Now let’s create an account called A and sign it the generated operator private signing key. To sign it with the key specify the -K flag and the private key or a path to the private key:

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  > nsc add account --name A -K SOAIHSQSAM3ZJI5W6U5M4INH7FUCQQ5ETJ5RMPVJZCJLTDREY6ZNEE6LZQ
                                                                                                                                                                                                                                  +Generated account key - private key stored "/Users/synadia/.nkeys/O2/accounts/A/A.nk"
                                                                                                                                                                                                                                  +Success! - added account "A"
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Let’s generate an account signing key, again we use nk:

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  > nk -gen account -pubout
                                                                                                                                                                                                                                  +SAAK3EL5BW4ZOR7JVTXZ4TJ6RQBSOIXK27AFPPSYVP4KDHJKSRQFVRAHIA
                                                                                                                                                                                                                                  +ABHYL27UAHHQXA5HLH2YWHFQBIP4YMPC7RNZ4PSFRAMJHSSZUUIXF2RV
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Let’s add the signing key to the account, and remember to sign the account with the operator signing key:

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  > nsc edit account --sk ABHYL27UAHHQXA5HLH2YWHFQBIP4YMPC7RNZ4PSFRAMJHSSZUUIXF2RV -K SOAIHSQSAM3ZJI5W6U5M4INH7FUCQQ5ETJ5RMPVJZCJLTDREY6ZNEE6LZQ 
                                                                                                                                                                                                                                  +Success! - edited account "A"
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +> nsc describe account 
                                                                                                                                                                                                                                  +╭─────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                  +│                   Account Details                   │
                                                                                                                                                                                                                                  +├───────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                  +│ Name                      │ A                       │
                                                                                                                                                                                                                                  +│ Account ID                │ AD7HDY5AS3LT            │
                                                                                                                                                                                                                                  +│ Issuer ID                 │ ODMYCI5TSZY6            │
                                                                                                                                                                                                                                  +│ Issued                    │ 2019-04-30 22:33:13 UTC │
                                                                                                                                                                                                                                  +│ Expires                   │                         │
                                                                                                                                                                                                                                  +├───────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                  +│ Signing Keys              │ ABHYL27UAHHQ            │
                                                                                                                                                                                                                                  +├───────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                  +│ Max Connections           │ Unlimited               │
                                                                                                                                                                                                                                  +│ Max Leaf Node Connections │ Unlimited               │
                                                                                                                                                                                                                                  +│ Max Data                  │ Unlimited               │
                                                                                                                                                                                                                                  +│ Max Exports               │ Unlimited               │
                                                                                                                                                                                                                                  +│ Max Imports               │ Unlimited               │
                                                                                                                                                                                                                                  +│ Max Msg Payload           │ Unlimited               │
                                                                                                                                                                                                                                  +│ Max Subscriptions         │ Unlimited               │
                                                                                                                                                                                                                                  +│ Exports Allows Wildcards  │ True                    │
                                                                                                                                                                                                                                  +├───────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                  +│ Imports                   │ None                    │
                                                                                                                                                                                                                                  +│ Exports                   │ None                    │
                                                                                                                                                                                                                                  +╰───────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  We can see that the signing key ABHYL27UAHHQ was added to the account. Also the issuer is the operator signing key (specified by the -K).

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Now let’s create a user and signing it with account signing key starting with ABHYL27UAHHQ.

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  > nsc add user --name U -K SAAK3EL5BW4ZOR7JVTXZ4TJ6RQBSOIXK27AFPPSYVP4KDHJKSRQFVRAHIA
                                                                                                                                                                                                                                  +Generated user key - private key stored "/Users/synadia/.nkeys/O2/accounts/A/users/U.nk"
                                                                                                                                                                                                                                  +Generated user creds file "/Users/synadia/.nkeys/O2/accounts/A/users/U.creds"
                                                                                                                                                                                                                                  +Success! - added user "U" to "A"
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +> nsc describe user
                                                                                                                                                                                                                                  +╭───────────────────────────────────────────╮
                                                                                                                                                                                                                                  +│                   User                    │
                                                                                                                                                                                                                                  +├─────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                  +│ Name            │ U                       │
                                                                                                                                                                                                                                  +│ User ID         │ UDYKZHLXFH56            │
                                                                                                                                                                                                                                  +│ Issuer ID       │ ABHYL27UAHHQ            │
                                                                                                                                                                                                                                  +│ Issuer Account  │ AD7HDY5AS3LT            │
                                                                                                                                                                                                                                  +│ Issued          │ 2019-04-30 22:43:46 UTC │
                                                                                                                                                                                                                                  +│ Expires         │                         │
                                                                                                                                                                                                                                  +├─────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                  +│ Max Messages    │ Unlimited               │
                                                                                                                                                                                                                                  +│ Max Msg Payload │ Unlimited               │
                                                                                                                                                                                                                                  +│ Network Src     │ Any                     │
                                                                                                                                                                                                                                  +│ Time            │ Any                     │
                                                                                                                                                                                                                                  +╰─────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  As expected, the issuer is now the signing key we generated earlier. To map the user to the actual account, an Issuer Account field was added to the JWT that identifies the public key of account A.

                                                                                                                                                                                                                                  + + +
                                                                                                                                                                                                                                  + +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                  + +

                                                                                                                                                                                                                                  results matching ""

                                                                                                                                                                                                                                  +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                    No results matching ""

                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/nats_tools/nsc/streams.html b/docs/nats_tools/nsc/streams.html new file mode 100644 index 0000000..16ad982 --- /dev/null +++ b/docs/nats_tools/nsc/streams.html @@ -0,0 +1,2561 @@ + + + + + + + Streams ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    + + + + + + + + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                    Streams

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    To share messages you publish with other accounts, you have to Export a Stream. Exports are associated with the account performing the export and advertised in exporting account’s JWT.

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Adding a Public Stream Export

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    To add a stream to your account:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc add export --name "abc" --subject "a.b.c.>"
                                                                                                                                                                                                                                    +Success! - added public stream export "abc"
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Note that we have exported stream with a subject that contains a wildcard. Any subject that matches the pattern will be exported.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    To check that the export is how you intended:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc describe account
                                                                                                                                                                                                                                    +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                    +│                  Account Details                   │
                                                                                                                                                                                                                                    +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                    +│ Name                     │ TestAccount             │
                                                                                                                                                                                                                                    +│ Account ID               │ AC7PO3MREV26            │
                                                                                                                                                                                                                                    +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                    +│ Issued                   │ 2019-04-29 14:20:13 UTC │
                                                                                                                                                                                                                                    +│ Expires                  │                         │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                    +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Imports                  │ None                    │
                                                                                                                                                                                                                                    +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +╭───────────────────────────────────╮
                                                                                                                                                                                                                                    +│              Exports              │
                                                                                                                                                                                                                                    +├──────┬─────────┬─────────┬────────┤
                                                                                                                                                                                                                                    +│ Name │ Type    │ Subject │ Public │
                                                                                                                                                                                                                                    +├──────┼─────────┼─────────┼────────┤
                                                                                                                                                                                                                                    +│ abc  │ Stream  │ a.b.c.> │ Yes    │
                                                                                                                                                                                                                                    +╰──────┴─────────┴─────────┴────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Messages this account publishes on a.b.c.> will be forwarded to all accounts that import this stream.

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Importing a Stream

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Importing a stream enables you to receive messages that are published by a different Account. To import a Stream, you have to create an Import. To create an Import you need to know:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                    • The exporting account’s public key
                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                    • The subject where the stream is published
                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                    • You can map the stream’s subject to a different subject
                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                    • Self-imports are not valid; you can only import streams from other accounts.
                                                                                                                                                                                                                                    • +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    To learn how to inspect a JWT from an account server, check this article.

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    With the required information, we can add an import to the public stream.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc add import --src-account AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H --remote-subject "a.b.c.>" --local-subject "abc.>"
                                                                                                                                                                                                                                    +Success! - added stream import "a.b.c.>"
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Note we did fancy things here: The remote stream publishes messages as a.b.c.>, but we changed the prefix to be something else in the importing account’s subject space. We changed it to abc.>. Subscribers in our account can listen to abc.> to get the messages.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    And verifying it:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc describe account
                                                                                                                                                                                                                                    +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                    +│                  Account Details                   │
                                                                                                                                                                                                                                    +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                    +│ Name                     │ AccountB                │
                                                                                                                                                                                                                                    +│ Account ID               │ AAL5Q2B3SMSO            │
                                                                                                                                                                                                                                    +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                    +│ Issued                   │ 2019-04-25 21:33:58 UTC │
                                                                                                                                                                                                                                    +│ Expires                  │                         │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                    +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Exports                  │ None                    │
                                                                                                                                                                                                                                    +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +╭────────────────────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                    +│                              Imports                               │
                                                                                                                                                                                                                                    +├───────┬────────┬─────────┬───────┬─────────┬──────────────┬────────┤
                                                                                                                                                                                                                                    +│ Name  │ Type   │ Remote  │ Local │ Expires │ From Account │ Public │
                                                                                                                                                                                                                                    +├───────┼────────┼─────────┼───────┼─────────┼──────────────┼────────┤
                                                                                                                                                                                                                                    +│ abc.> │ Stream │ a.b.c.> │ abc.> │         │ AC7PO3MREV26 │ Yes    │
                                                                                                                                                                                                                                    +╰───────┴────────┴─────────┴───────┴─────────┴──────────────┴────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Securing Streams

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    If you want to create a stream that is only accessible to accounts you designate you can create a private stream. The export will be visible in your account, but subscribing accounts will require an authorization token that must be created by you and generated specifically for the subscribing account.

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    The authorization token is simply a JWT signed by your account where you authorize the client account to import your export.

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Creating a Private Stream Export

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc add export --name pabc --subject "a.b.c.>" --private
                                                                                                                                                                                                                                    +Success! - added private stream export "pabc"
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Like before we defined an export, but this time we added the --private flag.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc describe account
                                                                                                                                                                                                                                    +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                    +│                  Account Details                   │
                                                                                                                                                                                                                                    +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                    +│ Name                     │ TestAccount             │
                                                                                                                                                                                                                                    +│ Account ID               │ AC7PO3MREV26            │
                                                                                                                                                                                                                                    +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                    +│ Issued                   │ 2019-04-25 21:51:02 UTC │
                                                                                                                                                                                                                                    +│ Expires                  │                         │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                    +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Imports                  │ None                    │
                                                                                                                                                                                                                                    +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +╭──────────────────────────────────╮
                                                                                                                                                                                                                                    +│             Exports              │
                                                                                                                                                                                                                                    +├──────┬────────┬─────────┬────────┤
                                                                                                                                                                                                                                    +│ Name │ Type   │ Subject │ Public │
                                                                                                                                                                                                                                    +├──────┼────────┼─────────┼────────┤
                                                                                                                                                                                                                                    +│ pabc │ Stream │ a.b.c.> │ No     │
                                                                                                                                                                                                                                    +╰──────┴────────┴─────────┴────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Generating an Activation Token

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    For a foreign account to import a private stream, you have to generate an activation token. The activation token in addition to granting permissions to the account, it also allows you to subset the exported stream’s subject.

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Let’s create an account and user for our stream client:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc add account --name AccountB
                                                                                                                                                                                                                                    +Generated account key - private key stored “~/.nkeys/Test/accounts/AccountB/AccountB"
                                                                                                                                                                                                                                    +Success! - added account "AccountB"
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +> nsc add user --name userb
                                                                                                                                                                                                                                    +Generated user key - private key stored "~/.nkeys/Test/accounts/AccountB/users/userb”
                                                                                                                                                                                                                                    +Generated user creds file "~/.nkeys/Test/accounts/ACcountB/users/userb.creds"
                                                                                                                                                                                                                                    +Success! - added user “userb” to “AccountB”
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    To generate a token, you’ll need to know the public key of the account importing the stream.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc generate activation -o /tmp/activation.jwt --target-account AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4 —subject a.b.c.d    
                                                                                                                                                                                                                                    +generated "pabc" activation for account "AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4".
                                                                                                                                                                                                                                    +JTI is "VNT3Y32I5FNTEHIVL6PINEJNNZ6Z2BGGEJ2QWNA3TPQ4A4KBRGHQ"
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    In the above invocation, we generated an activation redirecting the output to /tmp/activation.jwt. The exporting account exported a.b.c.>, but on the activation token will only grant permission to a.b.c.d to the target account.

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    For completeness, the contents of the JWT file look like this:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > cat /tmp/activation.jwt
                                                                                                                                                                                                                                    +-----BEGIN NATS ACTIVATION JWT-----
                                                                                                                                                                                                                                    +eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJWTlQzWTMySTVGTlRFSElWTDZQSU5FSk5OWjZaMkJHR0VKMlFXTkEzVFBRNEE0S0JSR0hRIiwiaWF0IjoxNTU2MjI5NDk0LCJpc3MiOiJBQzdQTzNNUkVWMjZVM0xGWkZQNUJOM0hBSTMyWDNQS0xCUlZNUEFFVExFSFdQUUVVRzdFSlk0SCIsIm5hbWUiOiJhLmIuYy5kIiwic3ViIjoiQUFMNVEyQjNTTVNPNUFTM0FQSkZVTkFJS1VDRVFKUEFRNzZYRUJUVk9DUUNYWEdLUDNZTUdHTjQiLCJ0eXBlIjoiYWN0aXZhdGlvbiIsIm5hdHMiOnsic3ViamVjdCI6ImEuYi5jLmQiLCJ0eXBlIjoic3RyZWFtIn19.eA0W-mcxFXyIpEk0MUgaLjj7t5jxEHTar7MNY5IYcJ7NHlDoHU5IFog2LlFW_hpTCFA4qa989vqECsiTuBuCAA
                                                                                                                                                                                                                                    +------END NATS ACTIVATION JWT------
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    When decoded it looks like this:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc describe jwt -f /tmp/activation.jwt 
                                                                                                                                                                                                                                    +╭───────────────────────────────────────────╮
                                                                                                                                                                                                                                    +│                Activation                 │
                                                                                                                                                                                                                                    +├─────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                    +│ Import Type     │ Stream                  │
                                                                                                                                                                                                                                    +│ Import Subject  │ a.b.c.d                 │
                                                                                                                                                                                                                                    +│ Account ID      │ AAL5Q2B3SMSO            │
                                                                                                                                                                                                                                    +│ Issuer ID       │ AC7PO3MREV26            │
                                                                                                                                                                                                                                    +│ Issued          │ 2019-04-25 21:58:14 UTC │
                                                                                                                                                                                                                                    +│ Expires         │                         │
                                                                                                                                                                                                                                    +├─────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Max Messages    │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Msg Payload │ Unlimited               │
                                                                                                                                                                                                                                    +│ Network Src     │ Any                     │
                                                                                                                                                                                                                                    +│ Time            │ Any                     │
                                                                                                                                                                                                                                    +╰─────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    The token can be shared directly with the client account.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    If you manage many tokens for many accounts, you may want to host activation tokens on a web server and share the URL with the account. The benefit to the hosted approach is that any updates to the token would be available to the importing account whenever their account is updated, provided the URL you host them in is stable.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Importing a Private Stream

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Importing a private stream is more natural than a public one as the activation token given to you already has all the necessary details. Note that the token can be an actual file path or a remote URL.

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc add import --token /tmp/activation.jwt 
                                                                                                                                                                                                                                    +Success! - added stream import "a.b.c.d"
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nsc describe account
                                                                                                                                                                                                                                    +nsc describe account
                                                                                                                                                                                                                                    +╭────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                    +│                  Account Details                   │
                                                                                                                                                                                                                                    +├──────────────────────────┬─────────────────────────┤
                                                                                                                                                                                                                                    +│ Name                     │ AccountB                │
                                                                                                                                                                                                                                    +│ Account ID               │ AAL5Q2B3SMSO            │
                                                                                                                                                                                                                                    +│ Issuer ID                │ OAYI3YUZSWDN            │
                                                                                                                                                                                                                                    +│ Issued                   │ 2019-04-25 22:04:29 UTC │
                                                                                                                                                                                                                                    +│ Expires                  │                         │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Max Connections          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Data                 │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Exports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Imports              │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Msg Payload          │ Unlimited               │
                                                                                                                                                                                                                                    +│ Max Subscriptions        │ Unlimited               │
                                                                                                                                                                                                                                    +│ Exports Allows Wildcards │ True                    │
                                                                                                                                                                                                                                    +├──────────────────────────┼─────────────────────────┤
                                                                                                                                                                                                                                    +│ Exports                  │ None                    │
                                                                                                                                                                                                                                    +╰──────────────────────────┴─────────────────────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +╭────────────────────────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                    +│                                Imports                                 │
                                                                                                                                                                                                                                    +├─────────┬────────┬─────────┬─────────┬─────────┬──────────────┬────────┤
                                                                                                                                                                                                                                    +│ Name    │ Type   │ Remote  │ Local   │ Expires │ From Account │ Public │
                                                                                                                                                                                                                                    +├─────────┼────────┼─────────┼─────────┼─────────┼──────────────┼────────┤
                                                                                                                                                                                                                                    +│ a.b.c.d │ Stream │ a.b.c.d │ a.b.c.d │         │ AC7PO3MREV26 │ No     │
                                                                                                                                                                                                                                    +╰─────────┴────────┴─────────┴─────────┴─────────┴──────────────┴────────╯
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Testing the Private Stream

                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Start the nats-account-server:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                      > nats-account-server -nsc ~/.nsc/nats/Test
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Create a config for the nats server server.conf:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    operator: /Users/synadia/.nsc/nats/Test/Test.jwt
                                                                                                                                                                                                                                    +resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Start the nats-server:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nats-server -c server.conf
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Start the subscriber for the client account:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    > nats-sub -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds ">"
                                                                                                                                                                                                                                    +Listening on [>]
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    Publish messages to the stream:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    # Client won’t get this one since it only has permission
                                                                                                                                                                                                                                    +# for messages ‘a.b.c.d’
                                                                                                                                                                                                                                    +> nats-pub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds a.b.c.a "hello"
                                                                                                                                                                                                                                    +Published [a.b.c.a] : 'hello'
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + > nats-pub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds a.b.c.d "hello"
                                                                                                                                                                                                                                    +Published [a.b.c.d] : 'hello'
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +

                                                                                                                                                                                                                                    The subscriber as expected prints a message on the stream that it was allowed to receive:

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    [#1] Received on [a.b.c.d.a.b.c.d]: 'hello'
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + + +
                                                                                                                                                                                                                                    + +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                    + +

                                                                                                                                                                                                                                    results matching ""

                                                                                                                                                                                                                                    +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                      No results matching ""

                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/search_index.json b/docs/search_index.json new file mode 100644 index 0000000..2fdc9db --- /dev/null +++ b/docs/search_index.json @@ -0,0 +1 @@ +{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["(nat","(nats)","/","30","alway","applic","augment","avail","big","client","cloud","cncf","command","common","control","data","deliveri","develop","differ","discoveri","easi","edg","event","extrem","for:","high","integr","introduct","iot","kubernet","languag","legaci","lightweight","made","messag","microservic","mobil","more","nat","native,","onc","oper","over","pattern","perform","program","project","prometheu","replac","secur","sensor","servic","simpl","spend","stream","streaming)","support","system.","telemetri","time","us","want","worri"],"whats_new/whats_new_20.html":["$g","(3)","(a","(both","(ed25519)","(onli","(or","(rewrit","(sign","(the","(unless",",",".","0","1","1h,","2.0","2.0,","2.0.","2d,",">0",">0.",">1",">1,","abil","abov","abstract","access","account","account)","account,","account.","accounts,","accounts.","accounts;","accountโ€™","achieve.","actual","ad","add","addit","addition,","affirm","again","algorithm","algorithm,","allow","alreadi","although","alway","anonym","anoth","another.","anyon","appli","applic","application.","applications.","architect","aspect","associ","asynchron","attack","authent","authentication,","author","authorization,","authorization.","authorized,","avail","available.","avoid","awar","back","base","basi","bcrypt","be","becam","becom","befor","before.","behalf","behaviors.","believ","below.","best","between","beyond","bind","bit","blindli","bodi","both","both.","bound","boundari","branch","bridg","brittle.","busi","caches,","calcul","call","capabilities,","care","case","case,","central","certain","certif","certificate.","certificates,","challeng","chang","change.","changes.","channel","chatti","check","choos","chose","client","clients.","clients..","clientโ€™","clue).","cluster","cluster,","cluster.","cluster/supercluster.","clusters.","code","code,","combin","commerci","common","commun","compani","complet","complex","concept","concern","config","configur","configured.","connect","connected,","consid","contain","continu","control","control)","copy/past","core","correct","correctli","correspond","count","cours","cover","covers,","creat","criteria","cross","current","data","data.","date,","de","decentr","decrement","default","default,","defin","deliv","deliveri","demo","deploy","describ","design","design.","designed,","desir","desirable.","differ","disconnect","distinguish","distribut","dmz","dmzs,","do","domains,","drain","drop","duplic","duration,","e.g.","each","earli","eas","easili","ed25519","edg","effect","enabl","encod","encourag","end,","endpoint","enforc","enough","ensur","entir","ephemer","equal","equival","essence,","essenti","etc.","even","event","evolv","exactli","exampl","excit","exercise.","exist","exit","expand","expect","explos","export","extern","extract","extrem","face","fact,","failov","fairli","favor","featur","feel","felt","few","fewer","field","file","files.","final","first,","flow","forc","form","full","fulli","function/service,","further","future,","gateway","gateways)","gateways.","gather","gave","gener","give","given","global","goe","graph","graph)","graph,","greatli","group","guarante","handl","happens.","have","hierarchi","high","higher","horizont","however,","ident","import","import,","importantli","importing,","improv","inbound","includ","increas","increment","indic","ineffici","influenti","info.","inform","infrastructur","innov","installation.","instance,","instead","insufficient,","insufficient.","integr","intentions,","interest","interest,","interfaces.","interfer","intern","introduc","introduct","isol","isolation.","itself,","jwt","jwt,","jwt.","keep","key","key.","keys,","know","knowledg","knowledge,","knowledge.","known","larg","large,","larger","larger,","largest","leaf","leafnod","level","limit","limits,","list","listen","local","locat","longer","look","maintain","make","manag","managed.","mani","map","map.","match","matter","mean","meaning","mechan","meltdown.","mesh","messag","message.","messages,","messageโ€™","microservic","mode","mode,","modern","more","moreover,","move","much","multi","multipl","nat","nats.","need","network","networks,","never","new","ng","ngs,","ngs.","ngs.usage.account_pub_nkey","nkey","nkeys)","node","nodes.","nonc","nonce,","nonce.","none","normal","normal,","now","obviously,","off.","offer","offering.","on","on,","onc","once,","oneโ€™","only.","oper","operators,","opportun","opportunities.","optim","optimist","organ","organization,","organizations,","origin","other","outbound","outbound,","over","overlap","overli","own","own,","owner","pair.","pass","password","password.","past,","peopl","per","perform","period","permiss","permissions,","perspective.","philosophy.","physic","pick","place","place).","placed,","plaintext","possibl","power","powerful.","prefix","premis","presenc","present","present,","preserv","primit","prior","privat","propag","propagation,","protocol","protocol.","prove","provid","public","public,","public/priv","publish","published.","publisher,","pull","push","queue","quit","random","rapid","real","receiv","received.","recent","recogn","reduc","refer","regardless","region","regist","releas","release.","released.","remained.","remot","repli","repres","request","request,","requestor","requestor.","requests.","requir","resist","resolv","respond","respons","response.","responses.","result","return","rewritten.","root","rout","run","same.","saving.","scalability.","scalabl","scalable,","scale","scale.","scenario","scope","second,","secur","security,","select","self","send","sent","serv","server","server)","server,","server.","servers.","servic","services,","services.","set","sever","shadow","share","sharing,","show","side","sign","sign,","signatur","silo","simpl","simpli","simplic","simplifi","singl","small","smart","so,","so.","solv","space","space,","space.","specif","specifi","spectr","spof","start.","state","states,","still","straightforward.","stream","streams,","structur","structures,","subject","subject,","subject.","subjects.","sublist,","subscrib","subscribers.","subscript","subscription,","subscription.","subsequ","subset","such","suffice.","superclust","supercluster.","superclusters,","superclusters.","support","suppress","synadia","synadia,","synadiaโ€™","system","system,","system.","systems.","taken","team","technolog","technologies.","tell","tenanc","tenancy,","tenant.","term","themselv","themselves.","thing","think","this.","those","three","through","thu","time","time,","tl","to,","to.","today.","togeth","token","tool","top","topolog","track","traffic","transpar","travel","tremend","trickier,","truli","trust.","tweak","two","type","under","understand","unit","unless","up","updat","upon","us","usag","usage,","usage.","user","user.","usernam","users,","users.","usersโ€™","usual","util","utility,","utility.","valid","valid,","validated,","veri","via","view","want","wast","way","way.","well","what'","whatsoev","whole","wildcard,","wildcard.","wildcards)","without","work","world","wrongs.","x.509","zero","โ€œdirectedโ€"],"nats_server/installation.html":["(provid","...","/usr/local/bin","0.0.0.0:4222","09:42:11.745919","09:42:11.746240","09:42:11.746249","09:42:11.746252","2.0.0","2019/05/13",">","[41634]","[inf]","amd64.zip","amd64/","amd64/licens","amd64/nat","amd64/readme.md","amd64:","appropi","architecture,","archive:","assum","binari","brew","build","certainli","choco","client","connect","copi","cp","creating:","curl","d","darwin","decompress","develop","directory;","docker","docker:","download","easiest","easy:","example,","execut","favorit","file","find","github.com/nat","go","here.","https://github.com/nat","id","inflating:","instal","installed,","io/nat","it.","l","latest","latest,","linux","listen","mac","manag","manager.","master,","match","mechan","nat","nbnynr4znth4n2uqksaakbafldv3pzo4ouyonsuiqastqt7bt4zf6wx7","o","obtain","os:","packag","philosophi","play","pull","readi","releas","server","server,","server.zip","server/releases/download/v2.0.0/nat","server:latest","shell):","simpli","simplicity.","sourc","start","system","test","unzip","unzip.","us","v2.0.0","v2.0.0darwin","version","version.","via","visibl","want","way","windows:","zip"],"nats_server/running.html":["...","0.0.0.0:4222","0.0.0.0:6222","0.0.0.0:8222","09:42:11.745919","09:42:11.746240","09:42:11.746249","09:42:11.746252","14:55:11.981434","14:55:11.981545","14:55:11.981560","14:55:11.981565","14:55:11.982492","2.0.0","2019/05/13","4222.","4222:4222",">","[1]","[41634]","[inf]","absenc","anything.","avail","client","command","connect","connections:","container","container:","default,","docker","don't","enabled.","flags,","here.","http","id","includ","inform","line","listen","mani","monitor","more","nat","nats:latest","nbnynr4znth4n2uqksaakbafldv3pzo4ouyonsuiqastqt7bt4zf6wx7","options.","p","port","print","readi","rout","run","secur","server","specifi","standalon","start","started,","ti","version"],"nats_server/windows_srv.html":["\"%nats_path%\\nat","1:1","[nat","abov","allow","anoth","binpath=","command","complet","configur","control","creat","current","default","fact,","file","flag","flags]\"","instal","instanc","instead","list","log","multipl","name,","nat","note","onc","pass","per","process","recommend","reload","rem","reopen","rotat","run","running,","sc.ex","see","server","server.ex","servic","service.","service:","signal","signal:","signaling.","signals,","singl","specified:","start","stop","stop=","support","us","user","way","window","windows."],"nats_server/clients.html":["\">\"","'world'","+c","0.0.0.0:4222","08:45:59.836809","08:45:59.836889","08:45:59.837161","08:45:59.837168","08:45:59.837170","08:46:12.731278","08:46:12.731347","08:46:12.731488","08:46:12.731493","08:46:12.731495","08:46:13.467099","127.0.0.1:49805","2.0.0","2019/05/16",":",">","[#1]","[29670]","[29785]","[>]","[hello]","[hello]:","[inf]","[not","[pong]","[trc]","abov","against","ahead","allow","anoth","anyth","binari","built","bundl","cid:1","client","client.","clients.","come","commit","connect","connected,","connection.","creat","demo","demo.","demo.nats.io.","descript","didn't","diesconnected,","differ","doesn't","download","easili","enabl","exampl","examples/tools/nat","fairli","file","first","flag","flag:","form","git","go","happens.","hello","here,","https://github.com/nat","id","instal","installed:","interact","interest","interesting.","interst","io/go","learn","librari","listen","lively,","log","machin","maintain","make","message,","message:","messages.","more","nat","nats://:","nats://demo.nats.io","nats://server:port","nayh35q7roqhlq3k565jr4optjgo5ek4fjx6kx5ihheplqbrsyvwi2no","nceojj5sbjkutmzednu3nbpjsljpcmqjuiqiwkfhwe5dpetjkhx2co2i","note","notic","of:","open","otherwis","output","ping","pong.","port,","pre","process","protocol","pub","publish","publish,","quiet","reach","readi","receiv","reconnected.","remot","repli","repo","request","respond","restart","run","s","secur","see","see:","send","server","server,","server:","session","set]","setup","someth","specifi","sport","start","sub","subscrib","subscribe,","subscriber,","subscriber:","take","team","tell","termin","terminal,","test","third","tl","tls://:.","tool","trace","tri","unless","url","url.","us","v","version","want","window","world","you'll","zip"],"nats_server/flags.html":["(default:","(exclus","(pid).","0.0.0.0","4222).","a,","addr","address","address,","advertis","around:","auth","authent","authentication,","authentication:","author","avail","behaviour","bind","both","c,","ca","certif","client","client_advertis","cluster","cluster_advertis","clustering:","comma","common","config","configur","connect","connect_retri","control","custom","d,","dashboard","debug","descript","disabl","dv","enabl","entri","event","exit","file","file.","flag","follow","h,","have","help","help_tl","here.","host","hostport","http","http_port","http_port).","https_port","https_port).","id","implicit","inform","information.","interfaces).","key","known","l,","list","log","logging:","logtim","m,","mani","messag","monitor","more","ms,","nat","no_advertis","number","option","output","p,","pass","password","password).","path","pid","port","privat","process","process.","protocol","r,","read","redirect","remote_syslog","request","requir","retri","revolv","rout","routes,","s,","secur","see","send","separ","server","servers.","show","signal","signaling.","simpl","sl,","solicit","specifi","store","syslog","t","t,","t=fals","test","timestamp","tl","tls,","tlscacert","tlscert","tlskey","tlsverifi","token","token).","trace","udp://localhost:514","url","user","usernam","username/password","v,","veri","verif","verifi","version","window","without","write"],"nats_server/configuration.html":["\"3secret\"","\"b\",","\"c\"]","\"f0obar\"","\"secret\"","#","$","$token","(includ","(slow","(the","./auth.conf","//","/config/fil","127.0.0.1:4222","2","2}","3secret",":,","=",">","[\"a\",","account","activ","allow","array","assign","auth.conf:","authentication/author","author","authorization:","bad","bad!","begin","best","between","block","braces:","brackets:","byte","c","chang","chunk","client","cluster","colon:","combin","comment","config","config:","configur","configuration,","configuration.","connect","consumer)","creat","debug","defin","depend","descript","differ","direct","directive.","disconnect","easili","enabl","enclos","environ","environment:","equal","export","features,","file","files.","fix","flag","flexibl","follow","foo","foo:","forc","forgiving,","format","gateway","have","host","host/port","http","http_port","https_port","includ","issues.","json","jwt","key","leafnod","length","length)","line","list,","listen","listen:","log","main","mani","map","max_connect","max_control_lin","max_payload","max_subscript","maximum","memori","messag","monitor","more","name","nat","newer","note","number","on","oper","option):","parser","path","paths,","payload","port","prefix.","primitive,","product","properti","protocol","provid","quot","refer","referenc","rel","reload","requir","resolv","restart","reus","right","running.","same","scope","second","section","seen:","semicolon","send","separ","server","server.conf","server.conf:","servers.","sever","sign:","signal","signal:","similar","simpl","simpli","specifi","split","start","string","strings,","style","subject","subscript","such","support","syntax:","termin","test","them.","thing","time,","tl","token","token:","token=\"hello\";","trace","tradit","troubl","true","type","typic","url","us","valu","variabl","variables.","variables:","veri","version","via","whitespace:","with:","without","write","write_deadlin","yaml.","{","{foo:","}"],"nats_server/securing_nats.html":["authent","author","client","connect","encrypt","form","nat","provid","publish","requir","secur","security:","server","sever","subject","subscrib","tl"],"nats_server/tls.html":["\"./server","#","(valu","0.0.0.0:4222","0.0001","1.2,","11:21:19.801539","11:21:19.801621","11:21:19.801777","11:21:19.801782","11:21:19.801785","11:21:19.801787","11:22:20.216322","11:22:20.216539","11:22:20.367275","11:22:20.367291","127.0.0.1:51383","2.0.0","2019/05/16",">","[21417]","[22242]","[dbg]","[inf]","[not","affect","allow","allowed.","amount","around","attack","authent","author","awar","block.","build","ca_fil","cert.pem","cert.pem\"","cert_fil","cert_file:","certif","certificates.","cid:1","cipher","cipher_suit","client","client,","client:","cluster","commit","complet","configur","configuration:","connect","connections.","consum","control","conversely,","creat","curv","curve_prefer","cypher","d","debug","descript","disconnect","doesn't","dure","dv,","each","enabl","encrypt","errors.","experi","experienc","expos","fail","file.","follow","fraction","git","golang","handshak","handshake,","https_port","id","increas","indic","insecur","key","key.pem","key.pem\"","key_fil","key_file:","list","listen","log","long","low)","map","map,","match","mode","modern","monitor","much,","nat","nd6zzdqqdgkyqgdd6qn2y26yeglth6bmmojz2xjb2vaspvii3xd6rfoq","notic","option","options:","order.","port","properti","properties:","purposes.","readi","reduc","requir","resources.","revolv","root","rout","run","seconds.","section","select","semant","server","server.","set","set,","set]","show","simplest","skip","specifi","specified.","start","such","suit","thu","time","timeout","timeout:","tl","tls.","tls:","tls_ecdhe_rsa_with_aes_128_gcm_sha256","tlscert=./serv","tlskey=./serv","true,","upgrad","us","valu","value.","verfication.","verifi","verify_and_map","version","want","you'll","{","}"],"nats_server/auth_intro.html":["(exclus","access","allow","authent","authentication,","author","authorization:","block","certif","challeng","client","clients:","configur","configuration.","connect","credenti","credentials,","deal","descript","entri","except","global","identifi","jwt","list","list.","map","maximum","multipl","name","nat","nkey","number","option","password","password)","permiss","properti","provid","public","second","section","server","server.","singl","specifi","subject","timeout","tl","token","token)","us","user","user:","usernam","username/password","variou","wait","way","well"],"nats_server/tokens.html":["\"$2a$11$pwifal8rswygi3jvzto9nu8.6joxzxfzo7c/w0elk017hjgukwrhy\"","\">\"","\"s3cr3t\"","$2a$11$pwifal8rswygi3jvzto9nu8.6joxzxfzo7c/w0elk017hjgukwrhi",">","[>]","addit","allow","auth","authent","authentication,","author","bcrypt","clear","client","client,","clusters.","configur","connect","connect.","connect:","dag0htxl4rgg7dxdajwbc8","easili","enabl","file.","file:","flag:","gener","hash:","here'","layer","listen","mkpasswd","nat","nats://dag0htxl4rgg7dxdajwbc8@localhost:4222","nats://s3cr3t@localhost:4222","pass:","password","persist","properti","provid","requir","s","s3cr3t","section","security,","server","server.","set:","simpl","simplest","specifi","start","still","string","sub","text","token","token:","tool:","url:","us","version","{","}"],"nats_server/username_password.html":["\"$2a$11$v1qrpbt8/slfebr4njq4t.2mg8chx8.mtbluitbolv3mkdeay.f7u\"},","$2a$11$v1qrpbt8/slfebr4njq4t.2mg8chx8.mtbluitbolv3mkdeay.f7u","(uffs#rg42pau#oxi^bnng","...",">","[","]","a,","add/remov","ass:","authent","authorization:","a}","b","b,","bcrypt","by:","b},","chang","clear","client","clients,","configur","control","credenti","disconnect","do:","effect.","enabl","entries:","file,","file:","greater","hash:","issu","manag","mkpasswd","more","multipl","nat","on","pass","password","password:","passwords.","reload","replac","restart","secrets.","server","signal","simpli","singl","specifi","support","take","text","tool.","us","user","user:","usernam","username/password","users:","want","without","you'll","{","{user:","}"],"nats_server/tls_mutual_auth.html":["\"./configs/certs/ca.pem\"","\"./configs/certs/serv","\"cn=example.com,ou=cncf\"}","\"derek@nats.io\"}","#","$","(san)","...","./nat","2253","=",">","[","]","add","addit","address","address:127.0.0.1,","altern","attribut","auth","authent","author","ca","ca,","ca_fil","ca_file:","cert.pem","cert.pem\"","cert_file:","certif","certificate.","certificate:","chang","client","client'","client.","cn=example.com","command","configur","data:","describ","distinguish","dns:localhost,","document,","email","email:derek@nats.io","encod","extend","extensions:","extract","field","field.","first","follows:","gener","here.","id","ident","inform","ip","issu","key","key.pem","key.pem\"","key_file:","known","line:","map","match","multipl","mutual","name","name:","names.","noout","note","note:","on","openssl","openssl:","option","option.","ou=cncf,","outsid","passwords.","provid","requir","required,","rfc","san","scope","second","section","server","shown","sign","simpli","specifi","subject","subject:","syntax","test/configs/certs/cli","test/configs/certs/tlsauth/client2.pem","text","timeout","tl","tlscacert=./test/configs/certs/ca.pem","tlscert=./test/configs/certs/serv","tlskey=./test/configs/certs/serv","tlsverifi","to:","track","true","trust","two","us","usage:","user","usernam","valid","verifi","verification,","verify:","verify_and_map","verify_and_map.","verify_and_map:","via","view","web","work","wouldn't","x509","x509v3","{","{user:","}"],"nats_server/nkey_auth.html":["\">\"","'udxu4rcsjnzoiqhznwxhxordprtgnjahahfrgzneejcpqtt2m7nlcnf4',","(nonce)","(the","(user/password/token","...","//","/path/to/file/storing/se","=",">","[","]","`nkey_seed`","add","against","attacks.","authent","authenticate:","authentication,","authentication.","author","authorization:","awesom","base","care.","challeng","challenge.","client","client.","client:","clients,","configur","connect","const","constant","control","defin","digit","directli","document","ed25519.","exampl","example,","file","first","function","gen","gener","guard","here","highli","ident","immun","key","key)","key,","key.","keys;","known","let'","letter","line","load","make","nat","nats.connect({","nc","need","needed).","new","nk","nkey","nkey:","nkey_se","nkeys,","nkeys.fromseed(buffer.from(nkey_seed));","nkeys:","nkeysโ€™);","node","note","now","option","output","pars","permiss","playback","pleas","port,","port:","portal","privat","program","properti","prove","provid","pub","public","pubout","random","replac","request,","requir","require('t","require(โ€˜natsโ€˜);","required.","return","s","safe","second","secret","section","secur","seed","seed.","server","server,","server.","set","shared.","sigcb:","sign","signatur","sk","sk.sign(nonce);","stand","start","store","suacssl3uahudxkfsnvuzrf5uhpmwz6bfdtj7m6usdxiednppqyyycu3vi","sub","succeeds.","such","support","system","thu","token","tool","tool.","treat","u","udxu4rcsjnzoiqhznwxhxordprtgnjahahfrgzneejcpqtt2m7nlcnf4","us","user","user,","user.","users:","valid","verifi","visit","want","without","work","you'll","{","}","});","โ€˜suacssl3uahudxkfsnvuzrf5uhpmwz6bfdtj7m6usdxiednppqyyycu3vyโ€™;"],"nats_server/jwt_auth.html":["(even","(includ","(jwt)","(not","(operators,","(or","account","account'","account,","account.","account;","accounts,","accounts.","ad","administr","adopt","algorithm.","all,","alway","ancillari","another.","anyth","application.","are:","assert","associ","attribut","audit","authent","authentication,","author","authorization)","authorization.","awar","basic","be","be:","bear","belong","best","better","between","capabl","carefulli","carv","case","chain","chain.","challeng","change,","check","chores.","claim","claims,","client","client)","clients.","come","complet","complex","complic","configur","configuration.","configurations.","connect","connects,","constraint","consum","contain","context,","control","convent","creat","creation","crucial","cryptograph","data","deleg","describ","describing:","design","detail","devis","differ","digit","directli","distribut","done","each","easi","ed25519","ed25519.","edit","effectively,","elimin","emb","enabl","endpoint","endpoint.","enlighten","entiti","environment.","exchang","expand","expect","explicit","explicit,","explicitli","export","export:","exports,","express","fanci","few","field","finally,","foreign","form","foundat","full","functionality.","further","global","going.","greatli","have.","hierarch","id","ident","impli","import","importers.","include:","inde","industri","inform","information,","instead","introduc","isol","isolation,","issu","issuer","json","jwt","jwt.","keep","key","key.","kind","known","larg","lastly,","leverag","limit","limits,","make","manag","mani","match","maximum","mechanisms,","messag","method","mind","minimum","model.","modifi","more","much","multi","name","nat","need","never","new","next,","nkey","nkey.","nkeys.","nonc","not,","nsc","number","on","one)","open","oper","operators.","others)","otherwise.","pair","paradigm.","parent","parties.","patterns,","permiss","point","present","previous","priori","privaci","privat","private.","process","produc","proof","protect","prove","provid","provided.","public","public;","publish","queri","recast","receiv","referenc","reject","relat","remap","repres","request","requestor","requests.","requir","resolv","restrict","retriev","rfc7519","role","rules.","secur","sensitive,","server","server,","server.","serverโ€™","servic","service.","session","set","share","shared,","short","sign","signatur","signer","simpler","simpli","simplifi","space","space.","specif","specifi","standard","step","store","stream","subject","subject).","subject.","subscrib","such","support","supported.","system","system.","tenanc","terms,","that,","think","those","thu","to.","togeth","token","token.","tool.","topolog","track","trust","trust.","trusted,","trusted.","turn","two","type","typic","unless","up","updat","updates.","url","us","user","user'","user.","users,","users.","valid","variou","verif","verifi","verification.","verified.","view,","visibl","want","way","web","well","whom.","without","work","โ€”"],"nats_server/auth_timeout.html":["(and","3","[","]","a,","abuse.","abuses.","authent","authorization:","a}","b,","b},","client","disconnect","doesn't","fractional).","import","includ","long","longer","much","note.","opportun","option,","password","prevent","second","server","set","specifi","time,","time.","timeout","timeout,","timeout:","timeouts,","tl","upgrad","users:","value.","within","{","{user:","}"],"nats_server/authorization.html":["\">\"","\"_inbox.>\"","\"_inbox.>\"]","\"req.b\"]","\"sandbox.*\"","$admin_pass,","$admin}","$client_pass,","$other_pass}","$requestor}","$responder}","$service_pass,","(_inbox.>).","=",">","[","[\"public.>\",","[\"req.a\",","]","_inbox.","_inbox..","_inbox.>","abov","account","action","add","addit","admin","admin,","alic","allow","allowed,","altern","anyth","appli","array","assign","attempt","authent","author","avail","base","basis.","block.","bob","both","break","client","client'","client,","client.","complet","complex","configu","configur","creat","default","default_permiss","defin","defined,","deni","deny:","descript","don't","each","entri","error","exampl","example,","explicetli","explicit","fail","follow","four","further","gener","grant","here","import","inbox","inbox.","inherit","insid","instal","instead","intent","is,","isol","level","limit","list","list.","log","make","map","map.","match","mean","member","messag","more","name","name.","nat","need","note","object","object.","only,","order","other,","parser","password:","pattern","pattern.","per","permiss","permissions.","permissions:","prefix","processed.","properti","provid","publish","publish/subscrib","published.","receiv","repli","req.a","req.b","req.b,","req.b.","request","request/repli","requestor","requests,","respond","respons","return","rule","see.","sensit","server","server,","servic","service,","set","set.","singleton","special","specif","specifi","start","string.","subject","subject,","subject.","subjects,","subjects.","subscrib","subset","support","therefor","three","to.","toallow","typic","unauthor","understand","us","user","users,","variabl","variables.","via","want","whitelist","whitelisted,","wildcard","wildcards.","withmulti","{","{user:","}"],"nats_server/clustering.html":["\"53yi78q96t52qdyywlkiye\"","\"cluster\"","\"irepas80tbwjbyulx1ulap\"","\"nats://192.168.59.103:7222\"","\"nats://192.168.59.105:7222\"","\"xzfu3u7usapwkuthomogzm\"","#","&","'world'","('0.0.0.0').","(...gzm)","(...gzm).","(localhost:4248).","(the","...iy","./seed.conf","0.0.0.0:5222","0.0.0.0:6222","05:20:31.100032","1,","10.10.0.1","10.10.0.2","127.0.0.1","127.0.0.1:4222","127.0.0.1:4248","127.0.0.1:52679","127.0.0.1:52726","127.0.0.1:52727","127.0.0.1:6248","15:14:47.339321","15:14:47.340787","15:14:47.340822","15:14:47.340825","15:14:59.970014","15:14:59.971150","15:14:59.971176","15:14:59.971179","15:14:59.971199","15:14:59.971551","15:14:59.971559","15:14:59.971602","15:14:59.971720","15:14:59.971731","15:14:59.971733","15:14:59.971739","15:19:11.528185","15:19:11.529787","15:19:11.529829","15:19:11.529842","15:19:11.529872","15:19:11.530272","15:19:11.530281","15:19:11.530308","15:19:11.530384","15:19:11.530389","15:19:11.530408","15:19:11.530414","15:19:11.530469","15:19:11.530565","15:19:11.530570","15:19:11.530595","15:19:11.530644","15:19:11.530650","15:19:11.530659","15:19:11.530664","192.168.59.103:7244","2015/06/23","2016/04/26","2]","3","4222","4248","5222","53yi78q96t52qdyywlkiy","6222","8222",":","[#1]","[1]","[75653]","[75665]","[75764]","[dbg]","[hello]","[inf]","[rurl","[trc]","accept","accepted.","accepted:","add","addit","address","address,","adjac","advertis","again,","alternatively,","argument","availability.","aware.","b","bind","c","c.","call","client","clients,","clients.","cluster","cluster,","cluster.","command","complet","config","configur","connect","content","creat","d","debug","demonstr","describ","differ","distribut","documentation.","down,","each","effect","even","exampl","file,","file.","finally,","first","follow","forward","full","function","gnatsd","graph,","hello","here","high","hop.","host,","host.","host:","hostnam","http:","id","immedi","inde","independently.","information.","instanc","intend","interfac","irepas80tbwjbyulx1ulap","join","leav","let'","limit","line","listen","listen:","local","localhost:4248","localhost:5248","localhost:6248","log","log,","logs:","long","make","mean","mesh","messag","mode.","more","msg","nat","nats://10.10.0.1:5222","nats://10.10.0.2:5222","nats://host:port","nats://localhost:4248","nats://localhost:4248:","nats://localhost:5248","nats://localhost:6248","need","node","note","note:","notic","now","now,","on","option","option).","option,","option.","origin","output","overview","p","p,","paramet","pick","point","point,","port","port:","possibl","problems.","produc","produced.","pub","publish","readi","receiv","recommend","regist","remain","remains.","remot","required.","resili","rid:1","rid:2","rout","routes.","run","rurl","s","same","second","see","seed","seed'","seed.conf,","sent","server","server.","server:","servers,","servers.","show","shown","similar","simpl","simplicity.","singl","solicit","specifi","start","still","sub","subscript","support","supported:","system","taken","test","that,","therefor","third","third.","this:","three","throughout","to:","togeth","tri","two","url","url,","us","version","volum","without","work:","world","xzfu3u7usapwkuthomogzm","{","}"],"nats_server/cluster_config.html":["#","$2a$11$xh8dkgrty1cbntzjhpewjewu/ypbsu.rxjwms6sfilobxzmzomk9m","(in","(urls)","./util/mkpasswd","0.5","=","[","]","above.","activ","amount","authentication.","author","clients.","cluster","complet","configur","connect","correct","credenti","definit","descript","follow","host/port","ignored.","inbound","list","listen","listen:","localhost:4244","map","maximum","nat","options:","p","password:","permiss","properti","rout","route://user1:pass1@127.0.0.1:4245","route://user2:pass2@127.0.0.1:4246","route_us","seconds)","secur","self","server","server.","solicit","suppli","support","t0ps3cr3tt00!","time","timeout","timeout:","tl","token,","user:","username/password","wait","with.","{","}"],"nats_server/cluster_tls.html":["\"./configs/certs/ca.pem\"","\"./configs/certs/srva","#","127.0.0.1:4244","=","[","]","above.","activ","authent","author","both","ca,","ca_file:","cert","cert.pem\"","cert_file:","certif","check","client","cluster","cluster,","configur","connect","correct","credenti","definit","directions.","endpoint","etc.","formation.","identity,","keep","key","key.pem\"","key_file:","listen:","mutual","nat","option","privat","requir","responses.","rout","route://127.0.0.1:4246","self","separ","server","server'","server.","set","sign","solicit","suppli","tl","tls,","up","us","verifi","{","}"],"gateways/":["\"foo\"","\"foo\",","\"foo\".","(dot","(solid","1","1)","1)/2","105","12","15","18","180","2","24","3","30","36","4","4005","5","6","66","a.","abov","accept","account","adjac","again","allow","alway","appar","avail","b","b,","b.","be","between","both","bound","c","c.","cancel","check","cluster","cluster.","cluster;","clustering:","clusters,","clusters.","come","configur","configuration.","configurations,","conn","connect","connections.","count","creat","dedic","deliv","describ","descript","differ","direct","directli","discov","discovered.","document","don't","dot","each","enabl","exampl","example,","exist","express","extern","failov","first","foo,","form","format","forward","forwarded.","found,","found.","full","futur","gateway","gateway.","gateways,","gateways.","gateways:","go","gone,","gossip","gossiping;","graph","group","group,","honor","i,","i.","inbound","inclined,","instead","interest","interest.","join","key","know","known","last","line","lines).","lines.","listen","local","m","make","mani","match","mathemat","mean","mechanisms:","member","mesh","messag","mode","more","n","n(n","name.","nat","nats'","new","ni","ni(m","node","nodes,","nodes.","nodes:","not,","note","number","on","onc","optim","optimist","optimistically,","option","out","outbound","outgo","per","point","port","ports.","prevent","previou","previous","propag","protocol","protocol,","publish","queue","quickly.","receiv","reduc","regist","reject","remot","removed.","request","requir","requirement.","role","same","same.","second","semant","send","serv","server","servers;","shown","similar","singl","smaller","solid","specifi","stop","subject","subject.","subscrib","subscriber.","subscript","subscription,","sum","summat","super","there'","those","three","to:","together.","together;","total","tri","typic","u","uni","unlik","updat","upon","us","variou","veri","via","vs.","work","โ€”"],"gateways/gateway.html":["\">\"","\"a\"","\"a\",","\"b\"","\"b\",","\"c\"","\"c\",","\"localhost:7222\"","\"nat","#","'bar'","(localhost:7333)","(localhost:7444)","(nbhwdfo3khanni6uceul27vnwl7nwd2mc4bi4l2c7vvlfbsmz3crd7he)","(nd2ujb3gfuhxoq2uumzqgocl4qvr2lrjodpzh7mipglwcqrarjbu27c3)","(same","0.0.0.0:4222","10:50:55.902474","10:50:55.902547","10:50:55.903669","10:50:55.903684","10:50:55.903696","10:50:55.903909","10:50:55.903914","10:50:55.903917","10:50:56.830669","10:50:56.830673","10:50:56.831079","10:50:56.831211","10:50:56.906103","10:50:56.906104","10:50:56.906404","10:50:56.906444","10:50:56.906647","10:50:56.906772","127.0.0.1:50891","127.0.0.1:50892","127.0.0.1:7333","127.0.0.1:7444","2.0.0","2019/05/07",":",">","[","[#1]","[85803]","[>]","[foo]","[foo]:","[inf]","[not","]","a.conf","address","advertis","author","bar","belong","below.","block","block:","c","client","cluster","cluster,","combin","commit","configur","configuration).","connect","connect_retri","connections.","creat","describ","descript","differ","discov","entri","expect","expected:","explicit","follow","foo","forward","fuzz.","gateway","gateway.","gateway://gwu:gwp@localhost:7222\"},","gateway://gwu:gwp@localhost:7333\"},","gateway://gwu:gwp@localhost:7444\"},","gateways.","gateways:","gid:1","gid:2","gid:3","gid:4","git","gwp","gwu","host","hostport","id","ignored,","inbound","incom","instead","interfac","ip","list","listen","listen:","localhost:4333","localhost:4444","localhost:7222","messag","minim","multipl","name","name.","name:","nat","nbhudbf3tvjswcdpg2hski4i2sbspdtnyexemofazuzyxva2iyrugpzu","number","on","onc","outbound","password:","port","process","properti","properties:","pub","publish","randomli","rc11","reached.","readi","receiv","regist","reject","reject_unknown","remot","returned,","rout","s","same","see","selected.","self","server","server:","session...","set]","share","similar","specifi","start","sub","time","tl","tri","true,","up,","url","url:","user:","version","{","{name:","}"],"leafnodes/":["\"127.0.0.1:4000\"","\">\"","\"a\"","\"a\":","\"leaf\"","\"leaf\":","\"nolimit\"","\"o\"","\"o\":","\"~/.nkeys/o/accounts/a/a.nk\"","\"~/.nkeys/o/accounts/a/users/leaf.creds\"","\"~/.nkeys/o/accounts/a/users/leaf.nk\"","\"~/.nkeys/o/accounts/a/users/nolimit.creds\"","\"~/.nkeys/o/accounts/a/users/nolimit.nk\"","\"~/.nkeys/o/o.nk\"","'bar'","'bar',","'bar'.","'bar':","'foo'","'nolimit'","(leaf.conf)","(ngs)","(or","(server.conf)","/users/synadia/.nkeys/o/accounts/a/users/leaf.cr","/users/synadia/.nsc/nats/o/o.jwt","02","05","2019","22:15:58","4000.","4111",":","=",">","[","[#1]","[#2]","[#3]","[#4]","[>]","[bar]","[bar]:","[foo]","[foo]:","[nats://localhost:4111]","]","access","account","account.","accounts.","ad","ad57mfnbiko3","add","addit","allow","allowed.","and/or","anoth","applied.","applied:","associ","assum","authent","author","bar","bar:","begin","between","both","bridg","c","call","case","client","cluster","cluster'","cluster.","clusters.","compon","configur","configuration,","configuration.","connect","connection.","contents:","control","creat","cred","credenti","credentials:","deal","describ","distribut","doesn't","domain.","edit","effect","enabl","end","expected.","experiment.","expir","export","expos","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijvsk9rtfvstuvftvzxqvpvt0e2vle1uvq0uediv081wktdwlblvfbjqvplsldastjgnvpriiwiawf0ijoxntu2odm1mzu4lcjpc3mioijbrdu3tuzoqklltznbrfu2vktmrkvyqlbvqjdfwlplu0tvuddztznwvufjtulbwupvne1em0nduiisim5hbwuioijszwfmiiwic3viijoivunemlpsvus1ue8ymk02mlnwvtzitzzjs01bverduljyvvvgwdrru1vtwfdrsdrhu1y3rddxvzmilcj0exblijoidxnlciisim5hdhmionsichviijp7imfsbg93ijpbimzvbyjdfswic3viijp7imfsbg93ijpbimjhcijdfx19.ieqsyltaismqmh3ih_0g8llxoxe0giclpxtm3b_ys_xwl9ttpiw","file","file.","filter","flow","follow","foo","forward","gain","gener","geograph","global","id","import","inexpens","inspect","issu","issuer","jwt","key","leaf","leaf,","leaf.conf","leaf:","leaf://localhost:4000,","leafnod","let'","level:","leverag","limit","list","listen","listen:","local","localhost","localhost:4111","m2qdayqz_zmr2glmvyk4ej6j8rq1uzdgag","manag","max","mean","member","messag","msg","n","name","nat","natur","network","new","node","node'","node.","node:","nodes,","nodes.","nolimit","note","now","nsc","number","o","oper","operator:","option","party.","path","payload","per","permiss","port","port:","print","print:","privat","pub","publish","put","receiv","reconnect","remot","remotes.","repeat","requir","required)","resolv","resolver:","restart","restrict","s","second","see","see:","separ","server","server'","server.conf","server:","servic","simpli","small","specif","specifi","src","start","store","sub","subject","subscrib","subscriber:","success!","synadia'","them.","third","time","to,","to.","traffic","tri","tutori","ucd2zruk5po2","unlimit","updat","url","url(http://localhost:9090/jwt/v1/accounts/)","url:","us","user","user'","user,","utc","want","way","we'll","windows:","within","won't","{","}","},","~/.nkeys/o/accounts/a/users/leaf.cr","~/.nkeys/o/accounts/a/users/nolimit.cr","~/.nsc/nats/o","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"leafnodes/leafnode_conf.html":["(same","(url",":","`no_advertis","account","advertis","advertised.","allowed.","authent","author","belong","block","block.","build","ca_fil","cert_fil","certif","certificates.","cipher","cipher_suit","client","cluster,","combin","configur","configuration).","connect","connecting/authenticating.","connections.","credenti","curv","curve_prefer","cypher","defin","descript","entri","file","file.","fraction","gateway","gateways.","golang","handshak","host","hostport","identifi","incom","insecur","interfac","key","key_fil","leafnod","leafnode).","leafnode.","list","listen","locally.","made.","map","match","name","name.","nat","order.","port","properti","protocol","public","purposes.","remot","requir","same","seconds.","server","server.","set,","shouldn't","skip","specifi","suit","timeout","tl","true","true,","url","us","valu","verfication.","verifi","verify_and_map","version"],"nats_server/logging.html":["\"/tmp/nat","\"postrotate\"","(\"daily\"","(\"rotate\"","(centos),","(default","/path/to/nat","/var/run/nat","30","8222","`cat","actual","address.","appli","avail","bar","caus","command","complete.","compress","configur","copi","d,","daili","debian,","debug","debug:","default","delsub","describ","determin","distribut","documentation.","dv","enabl","endscript","entri","etc.","example,","example:","fals","file","file.","files,","files.","first","flag","follow","foo","gone,","includ","indic","instead","kill","l","l,","line","linux","locat","log","log_file:","logror","logrot","logrotate;","logtim","logtime:","m","make","manag","master","mechan","messag","messages,","method.","missingok","mode,","nat","nats.log","new","note","notifempti","older","onc","oper","option","option)","option).","output.","pass","pid.","place.","postrot","preserv","process'","process,","protocol.","provid","r","r,","raw","receipt","received.","redhat","redirect","refresh","reload","remote_syslog","remov","request","rest","rotat","s","s,","section","send","server","server,","server.","server.log","server.log\"","server.pid","server.pid`","set","signal","sigusr1","simpl","simple.","specifi","standard","store","subscript","subsequ","supported:","syslog","syslog:","syslog://:","syslog://logs.papertrailapp.com:26900","t","t,","taken","tell","timestamp","timestamped.","to.","tool","trace","trace.","trace:","true","true).","true.","ubuntu,","udp:","udp://localhost:514","unsub","us","user","util","v,","variou","verbos","via","well.","with:","{","}"],"nats_server/monitoring.html":["\"0.0.0.0\",","\"0.5.0\",","\"0.6.6\",","\"1.0.9\",","\"127.0.0.1\",","\"1m33s\",","\"2015","\"auth_required\":","\"avg_fanout\":","\"cache_hit_rate\":","\"cid\":","\"connections\":","\"cores\":","\"cpu\":","\"de475c0041418afc799bccf0fdd61b47\",","\"did_solicit\":","\"ec933edcd2bd86bcf71d555fc8b4fb2c\",","\"go\",","\"go\":","\"go1.5.0\",","\"hello.world\"","\"host\":","\"http_port\":","\"in_bytes\":","\"in_msgs\":","\"ip\":","\"lang\":","\"limit\":","\"max_connections\":","\"max_control_line\":","\"max_fanout\":","\"max_payload\":","\"mem\":","\"now\":","\"num_cache\":","\"num_connections\":","\"num_inserts\":","\"num_matches\":","\"num_removes\":","\"num_routes\":","\"num_subscriptions\":","\"offset\":","\"out_bytes\":","\"out_msgs\":","\"pending_size\":","\"ping_interval\":","\"ping_max\":","\"port\":","\"remote_id\":","\"remotes\":","\"rid\":","\"routes\":","\"ruby\",","\"server_id\":","\"slow_consumers\":","\"ssl_required\":","\"ssl_timeout\":","\"start\":","\"stats_time\":","\"subscriptions\":","\"subscriptions_list\":","\"uptime\":","\"version\":","$","$.getjson('http://localhost:8222/connz?callback=?',","(limit","/connz","/routez","/subsz","/varz","0","0,","0.0.0.0:4222","0.5,","0.8.0","0.99999,","07","07:00\"","07:00\",","1,","100000,","1024","1024,","1048576,","120000000000,","14t12:55:25.564818051","14t13:29:26.426805508","14t13:30:59.349179963","1600000,","2,","200000,","2015/08/19","20:09:58.572939","20:09:58.573007","20:09:58.573071","20:09:58.573090","3,","39,","4,","4222,","569,","571,","572,","574,","61572,","61577,","61791,","65536,","8222","8222,","8445952,","[","[4528]","[inf]","]","activ","applic","applications.","argument","basi","callback","client","cluster.","configur","connect","connections.","connz,","console.log(data);","control","cors,","cors.","creat","current","data","dedic","default","describ","detail","each","easi","easili","enabl","endpoint","endpoint.","endpoint:","endpoints,","exampl","example:","expect","false,","file.","flag","follow","function(data)","gener","gnatsd","go","here","http","http://localhost:8222/","http://localhost:8222/connz","http://localhost:8222/connz?callback=cb","http://localhost:8222/connz?limit=1&offset=1&subs=1.","http://localhost:8222/connz?limit=1&offset=1.","http://localhost:8222/routez","http://localhost:8222/routez?subs=1","http://localhost:8222/subz","http://localhost:8222/varz","http_port","https_port","implementation:","includ","inform","jqueri","json","jsonp","lightweight","listen","low,","m","m,","make","mechan","messag","monitor","monitoring.","more","ms,","nat","object.","offset).","page","paramet","pass","per","port","port,","port.","provid","queri","readi","report","return","rout","routez","routez,","run","section","server","server,","sever","simpli","singl","start","statistics.","structure.","sub","subs=1.","subscript","subsz.","support","system,","test,","true,","turn","url","us","variou","varz,","version","via","web","{","}","});","},"],"nats_admin/":["(or","cluster)","configur","consum","file","include:","lifecycl","log","manag","nat","oper","reload","rotat","send","server","signal","simple,","slow","typic","understand","upgrad"],"nats_admin/upgrading_cluster.html":["\">\"","\"avoid","'a'","'a',","'a':","'a,'","'a.'","'b'","'b'.","'b':","'b.'","'b.',","'dontrandomize'","'localhost:6333'.","'norandomize').","'seed","'t'","'t'.","'t.'","(specifi","(usual","1/2","3","4222","4222,","4333","4444","6222.","6333.","[here)(https://github.com/nat","a,","abil","abov","accept","accur","ad","addit","admin","ahead","allow","amount","around","attempt","authent","author","automatically.","awar","b","basic","becom","befor","behavior","besid","between","binari","build","c","call","case","changes,","client","client,","client.","clients.","cluster","cluster.","cluster:","code","command","configur","configuration,","configuration.","connect","connect:","connected.","consid","consist","continu","ctrl+c","d","debug","defin","describ","dial","disabl","disconnect,","don't","drive","each","emit","enabl","enabled,","end","ensur","error","evenli","exampl","exist","find","finger","five","fix","follows:","form","full","function","gain","get","gnatsd","go","gossip","gossip.","half","hand","herd\".","ignor","includ","instant","introduc","invok","io/go","issu","it'","join","joined.","jump","keen","keyboards,","knew","last","learn","let'","list","listen","localhost:6333:","make","member","members.","mesh.","messag","more","motions.","move","nat","nats/tree/master/examples).","nats://localhost:4222","nats://localhost:6222","nats://localhost:6222,nats://localhost:6333","nats://localhost:6333","nats://localhost:6444","new","note","notic","now","observ","on","onc","option","otherwis","out","output","over","p","peers.","perform","perman","permiss","place","port","possibl","power","prevent","print","privileges.","procedure.","process,","protocol","provid","purpos","randomli","read","reader","reads:","received.","reconnect","redistribut","reduc","refus","reject","remain","removed:","report","restart","revolv","roll","rotat","rout","route,","route.","route:","routes.","s","same","sampl","scenario,","second","see","seed","select","self","serv","server","server'","server',","server,","server:","servers,","servers.","servers:","settings.","simul","singl","so,","sole","sourc","special","specifi","start","started,","stop,","store","strategi","sub","subject","subscrib","suffic","suffice.","tcp","temporari","termin","that,","themselv","three","through","thunder","time","tool)","tri","turn","tutorial,","two","unexpect","unless","up","updat","update,","upgrad","upgrade.","url","user","version","wait,","warn","ye"],"nats_admin/slow_consumers.html":["!=","\"foo\".","\"slow","%d","%q.\\n\",","%v\",","%v\\n\",","(disconnected).","*nats.conn,","*nats.subscription,","//","1024*5000);","14:45:18.001357","2017/09/28","2s","65536","65536*1024","65536,","::1:63283",":=","==","[54083]","[inf]","_,","accommod","accommodate.","add","adjusted.","align","allow","apart","appli","applic","application,","application.","approach","associ","asynchron","auto","automat","avail","availability,","available:","back","befor","behind","belong","better","block","buffer","built","burst","byte","callback","callback.","callbacks,","capac","case","catch","changes,","check","cid:7","city,","client","client,","client.","code","common","complex","condition.","configur","connect","connection.","connections.","consid","consum","consumer\"","consumer,","consumer.","consumer?","consumers?","continu","core","count","creat","created:","cut","data","data.","deadlin","decreas","deep","default","defin","deliv","delivery.","demonstr","design","design.","detect","determin","devic","differ","disconnect","distribut","down","downtim","drop","dropped.","each","easier","encount","encountered,","endpoint","endpoints.","enough","enough,","ensur","enterpris","environment.","err","err)","error","error)","error,","error.","error:","errors.","everyth","exampl","example,","exce","exceeded,","expand","fall","fast","favor","few","field.","file","flow","fmt.printf(\"couldn't","fmt.printf(\"error:","fmt.printf(\"fal","follow","forethought","four","func","further","future.","gener","give","graph","great","group,","grow","handl","handle,","handler","happen","high","idea","ideal","identifi","includ","increas","indic","initi","initially,","instanc","integr","interest","intern","interval,","iot","issu","it.","itself","itself,","keep","lazi","less","limit","limit,","limits:","listen","listeners.","local","locat","log","log.fatalf(\"un","logic","mani","match","mean","mechan","messag","messages,","messages.","messages:","meter","meter,","microservic","miss","monitor","more","much","namespac","namespace,","nat","nats,","nats.connect(\"nats://localhost:4222\",","nats.errorhandler(natserrhandler))","nats.errslowconsum","nats:","natserr","natserr)","natserrhandler(nc","nc,","necessarili","need","new","nil","note","notif","notifi","number","off.","offici","often,","on","onc","operations...","optim","option","order","order.","outbound","output","output:","over","paramet","particular","pend","pendingmsgs,","period","ping","pong","portion","postpon","potenti","preserv","pressur","pressure.","problems.","process","process,","protect","provid","prune","publish","publisher.","queue","quick","quickly.","rate","rates.","reach","receiv","recommend","reconnect","recov","reduc","regist","reli","remain","replac","repres","request","request/repli","requir","resili","respond","rest","return","room","scale","scale,","scale.","scaling,","see","segment","sensors.>","sensors.east","sensors.north,","sensors.south,","sensors.west.","server","server'","server,","server.","servic","set","settings,","sever","simpl","simpli","singl","size","slow","slow,","slow_consum","smaller","someth","statist","stream","sub","sub.pending()","sub.setpendinglimits(1024*500,","sub.subject)","subject","subscrib","subscriber,","subscribers,","subscript","subscription.nextmsg(timeout","support","sure","synchron","system","system.","systems:","telemetri","temporari","this:","through","throughout","time.duration)","track","tune","typic","unless","untouched.","up","up.","us","vari","varz","way","whatsoever.","whole","wildcard","within","work","write","write_deadlin","write_deadline:","you'll","yourself","{","}"],"nats_admin/signals.html":["#","(lame","absolut","available,","binari","client","configur","duck","evict","file","file:","flag:","follow","gracefulli","immedi","inform","isn't","kill","lame","ldm","log","mode","mode)","multipl","nat","path","pgrep","pid","process","quit","reload","reopen","respond","result","rotat","run","running,","section","see","send","server","servic","sighup","sigint","sigkil","signal","signals:","sigusr1","sigusr2","sl","specifi","stop","stop=","stop=/path/to/pidfil","systems,","unix","us","window","windows."],"sys_accounts/":["accept","account","addit","as:","authent","cluster.","connect/disconnect","connections,","error","event","gener","learn","leverag","limit","more","nat","number","ping","queri","request","server","shutdown","stat","such","summari","summaries,","support","system","tutori","tutorial.","us","users.","visibl"],"sys_accounts/sys_accounts.html":["\"\"","\"0.0.0.0\",","\"1.7.0\",","\"127.0.0.1\",","\"2.0.0","\"2019","\">\"","\"acc\":","\"active_accounts\":","\"adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf\",","\"bytes\":","\"client","\"client\":","\"connections\":","\"conns\":","\"cores\":","\"cpu\":","\"go\",","\"host\":","\"id\":","\"lang\":","\"mem\":","\"msgs\":","\"name\":","\"nat","\"nbtgvy3okdkeajpuxrhzlkbcrh3lwckz6zxtajrs2rmyn3pmdrmuzwpr\",","\"nc7akpqrc6cizgwrjotvfigvsl7vw7wxtqctujfng7htcmckqtge5pul\",","\"nczqdux77osstgn2eseocp4x7gismarx3h4dbgzby34vlai4tqepk6p6\",","\"reason\":","\"received\":","\"saop\"","\"sent\":","\"seq\":","\"server\":","\"slow_consumers\":","\"start\":","\"statsz\":","\"stop\":","\"subscriptions\":","\"sys\"","\"sysu\"","\"time\":","\"total_connections\":","\"total_conns\":","\"uacpexcazeywzk4o52megwgk4bh3osgym3p3c3f3lf2ngnzus24ivg36\",","\"user\":","\"ver\":","\"~/.nkeys/saop/accounts/sys/sys.nk\"","\"~/.nkeys/saop/accounts/sys/users/sysu.creds\"","\"~/.nkeys/saop/accounts/sys/users/sysu.nk\"","\"~/.nkeys/saop/saop.nk\"","#","$sys.account..claims.upd","$sys.account..connect","$sys.account..disconnect","$sys.account..leafnode.connect","$sys.req.server..statsz","$sys.req.server.p","$sys.req.server.ping),","$sys.req.server.ping.","$sys.server..client.auth.err","$sys.server..statsz","$sys.server.account..conn","''","'{","(authent","(client","(connect","(discov","(http://localhost:9090/jwt/v1/accounts/)","(leaf","(or","(request","(stat","(such","(~/.nsc/nats//.jwt)","/users/synadia/.nsc/nats/saop/saop.jwt","0","0,","02t13:41:01.113179","02t14:02:46.402166","03t14:32:19.969037","03t14:34:02.066077","03t14:53:15.453824","03t14:53:15.45526","03t14:53:15.455266","03t14:53:15.455304","05","05:00\"","05:00\",","1","1,","10,","11874304,","12922880,","2,","20,","25,","26,","2761","3","32,","33,","4,","47,","6,","7,","9096",":",">","[#35]","[#36]","[$sys.account.adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf.disconnect]:","[$sys.req.server.nc7akpqrc6cizgwrjotvfigvsl7vw7wxtqctujfng7htcmckqtge5pul.statsz]","[$sys.req.server.ping]","[$sys.server.account.adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf.conns]:","[_inbox.dqd44ugvt0o4ur3pwiood1.wqobevoq]","[_inbox.g5mbsf0k7l7nb4ewha7gtt.omklmvnm]","\\$sys.req.server.nc7akpqrc6cizgwrjotvfigvsl7vw7wxtqctujfng7htcmckqtge5pul.statsz","\\$sys.req.server.p","access","accordingly:","account","account,","account.","account:","activ","ad","add","addit","adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf","allow","amount","answer","at:","authent","bar","below","build","c","changed)","claim","client","closed\"","cluster,","collected.","config","configur","connect","connects)","connects/disconnect","connnects)","content","creat","cred","credenti","credentials:","default","default,","disconnect:","disconnects)","discov","don't","easi","easili","enabl","enclos","endpoint","enough:","error","error)","even","event","events,","events:","exampl","expected,","fairli","few","file","first","follow","foo","found","gener","handi","health","health/load","heath","http(s):///jwt/v1/accounts/.","id","implementations,","inform","information:","initi","inspect","json,","jwt","key","know","known","let'","like:","list","listen","memori","messag","messages)","modifi","monitor","multipl","n","name","nat","need","need:","node","note","nsc","oper","operator,","operator:","particular","patterns.","period","print","printed.","privat","privileges,","pub","public","publish","publisher\",","queri","quickli","rc5\",","rc9\",","read","receiv","req","req,","request","requests:","resolv","resolver)","resolver:","respons","return","run","sampl","saop","save","see","send","serv","server","server,","server.","server.conf","server.conf:","server:","servic","short","simpl","small","specif","start","stat","store","sub","subject","subscrib","success!","summari","summary)","summary,","surprisingli","sy","system","system_account","system_account:","sysu","them,","them.","thing","thu","time,","to:","tool","tools:","tutori","under","until","updat","update:","updated,","url","url().","url(http://localhost:9090/jwt/v1/accounts/)","us","user","user:","vend","veri","w","wait","we'll","well","you'll","{","}","}'","},","~/.nkeys/saop/accounts/sys/users/sysu.cr","~/.nsc/nats//.jwt.","~/.nsc/nats/saop","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"nats_docker/":["\"ee35d227433a738c729f9422a59667bb\"","\"nats://192.168.59.103:7222\"","\"nats://192.168.59.105:7222\"","#","$","$(pwd)/conf/nat","&","'0.0.0.0'","'world'","(here","(nat","(one","/tmp/cluster.conf","0.0.0.0:4222","0.0.0.0:4222:4222","0.0.0.0:6222","0.0.0.0:7222:7222","0.0.0.0:7244:7244","0.0.0.0:7246:7246","0.0.0.0:7248:7248","0.0.0.0:8222:8222","0.0.0.0:9222:9222","0.6.6","05:20:31.100032","10","172.17.0.52:6222","192.168.59.103","192.168.59.103:7244","1:","2","2015/06/23","2:","3","4222","4222:4222","6222","6222:6222","7222","7244","7246","7248","8222","8222:8222","9222",":",":6222","=",">","[","[#1]","[1]","[dbg]","[hello]","[inf]","[trc]","]","a.conf","a.conf:/tmp/cluster.conf","above.","activ","add","address","anoth","author","b","b.","b.conf","b.conf:/tmp/cluster.conf","b:","beforehand","below","below:","bring","c","c.","c.conf","c.conf:/tmp/cluster.conf","client","clients.","cluster","clustering.","come","conf","config","config:","configur","configuration.","configuration:","connect","connected:","contain","container","containers,","content","coupl","creat","credenti","customize.","d","daemon.","default","differ","docker","docker.","dv","e.g.","each","exampl","example,","example:","expos","extract","extrem","file","finally,","first","first,","flag","folder","follow","follows:","gnatsd","hello","host:","http","hub","imag","image,","image.","image:","inform","instal","instruct","ip","ip:port","it:","know","lightweight,","link","listen","local","logs:","main","main:6222","maintain","make","manag","mb","messag","monitor","more","msg","multipl","name","name=nat","nat","need","next","node","node.","note","now","now,","on","p","password:","per","port","port:","ports:","problems.","proce","proper","protect","protected,","provid","provis","pub","public","publish","pull","put","readi","realiz","receiv","regist","remot","replac","reporting.","rid:1","rid:2","rm","rout","route://192.168.59.103:7244","route://192.168.59.103:7244)","route://192.168.59.103:7246","route://192.168.59.103:7248","route://192.168.59.104:7244","route://192.168.59.104:7246","route://ruser:t0ps3cr3t@nat","route://ruser:t0ps3cr3t@otherdockerhost:6222","routes=nat","run","ruser","s","scenario:","second","see","sent","server","server)","servers,","servers.","set","setup","size.","start","sub","subscript","support","synadia","t0ps3cr3t","test","those","three","timeout:","together:","tri","tutori","under","up","us","usag","user:","v","verifi","version","without","work:","world","{","|","}"],"nats_docker/tutorial.html":["'^]'.","'nats:latest'","0.0.0.0:4222","0.0.0.0:6222","0.0.0.0:8222","0.9.6","1.","18:34:19.605144","18:34:19.605191","18:34:19.605286","18:34:19.605312","18:34:19.608756","2.","2017/06/28","24bc6bd33ea7:","2d3d00b0941f:","3.","4.","4222","4222:4222","6","6222:6222","8222:8222","::1...",">","[1]","[inf]","activ","browser.","charact","client","complet","connect","digest:","docker","docker.","download","downloads.","easi","easiest","endpoint,","escap","expect","find","follow","following:","gnatsd","guidance.","http","http://localhost:8222","imag","image.","indic","info","instanc","latest:","library/nat","listen","local","localhost","localhost.","maintain","mb","mere","monitor","name","nat","nats:latest","newer","notic","p","port","provid","pull","quickli","readi","result:","rout","run","running.","running:","see","server","server.","set","sha256:47b825feb34e545317c4ad122bd1a752a3172bbbc72104fc7fb5e57cf90f79e4","size.","start","status:","support","synadia","telnet","telnet.","test","this,","through","ti","toolbox.","tri","tutori","unabl","up","us","verifi","version","view","way","{\"server_id\":\"ymeti2z178lm5sg302ygh2\",\"version\":\"0.9.6\",\"go\":\"go1.7.4\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"tls_required\":false,\"tls_verify\":false,\"max_payload\":1048576}"],"nats_docker/docker_swarm.html":["\"[#{time.now}]","\"error:","\"hi\",","\"seed\"","\"world\")","#{e}\"","#{inbox}\"","#{msg}","#{msg}\"","#{nc.connected_server},","#{nc.server_pool}\"","#{reply}\"","%","'","(in","(server","(sinc","+0000]","0017lut0u3wj153yvp0uxr8yo","08","1","1.","12:51:52","12:51:53","12:51:54","12:51:55","15","16:06:26","16:06:27","1:","1:4222\"])","1:6222","2","2.3.1","25skxso8honyhuznu15e4989m","2:","2nd","2sxl8rw6vm99x622efbdmkb96","3","3:","6222:",":reconnect_attempts=>0},",":reconnect_attempts=>0}]",":was_connected=>true,","=","==","=>","[\"nats://nat","[2016","[{:uri=>#,","_inbox.4c35d18701979f8c8ed7e5f6ea","_inbox.b8d8c01753d78e562e4dc561f1","above,","ad","add","ago","anoth","auto","autodiscoveri","automat","avail","awar","back","be","below","case,","client","cluster","cluster,","cluster.","cluster:","confirm","connect","creat","current","desir","discovery!","distribut","docker","driver","dv","dynam","e","em.add_periodic_timer(1)","end","end'","error","exampl","example),","example,","experi","feature.","first","forth...","greet","here","hi","id","ignor","imag","inbox","inbox)","inbox:","initi","instanti","join","know","listen","minut","more","name","names,","nat","nats.1","nats.2","nats.3","nats.create_inbox","nats.on_error","nats.start(:serv","nats://0.0.0.0:6222","nats://nat","nats:1.0.0","nats:rubi","nats=3","nc.publish(\"hello\",","nc.publish(reply,","nc.subscribe(\"hello\")","nc.subscribe(inbox)","network","network.","network:","new","next","node","note","notic","now","output","overlay","parameter:","part","pool:","port","ps","put","receiv","referenc","repli","replica","reply|","responses):","rest","rout","rubi","run","sampl","say","scale","seed","seen","server","server.","servic","services,","simpli","state","step","subscriber:","swarm","through","together.","updat","v0.8.0","via","wallyqs/rubi","within","worker","world","you'v","{:uri=>#,","|e|","|msg,","|nc|"],"nats_streaming/nats-streaming-intro.html":["\"durabl","\"initi","\"last","\"repli","(for","(https://developers.google.com/protocol","(messag","(or","(to","2.0","30",">","[googl","[penwidth=2,","[shape=\"record\",","[shape=box,","[splines=ortho,","acknowledg","acknowledged)","activ","addit","administr","administration.","allow","apach","api","api}\"];","applic","application:nat","aspect","async","at:","basic","begin","below","between","binari","block","buffers/).","buffers]","caching.","call","caus","chang","channel","channel.","choose.","client","cluster_nats_streaming_serv","code","command","commonli","concept","configur","configuration,","confirm","connect","contain","contributor","core","crc32","current","custom","data","date/tim","date/time,","deliv","deliveri","delivery).","design","develop","digraph","dir=\"both\"];","durabl","e.g.","earliest","effect","elig","embeds,","enhanc","execut","extends,","extern","fall","featur","fields:","files.","flag","flat","flight","follow","following:","format","further","given","global","go","graph","histor","id","ieee","implement","implementations.","info","instal","interfac","interoper","label=\"nat","label=\"storage\"];","label=\"stream","label=\"{appl","labelloc=b;","language.","last","license.","limit","limit.","linux,","mac,","maintain","matching/limit","maximum","maxinflight","maxpubacksinflight","memori","messag","message/ev","module\"];","name","name\"","name,","name.","nanosecond","nanoseconds.","nat","nats,","nats_serv","nats_stream","needed.","new","nodesep=1];","number","offer","offset","onc","open","operations)","option","option,","order","outstand","paramet","payload","per","persist","platform","platform,","platform.","pleas","posit","power","prior","program","protocol","protocol.","provid","public","publish","rank=sam","rate","reached,","readm","receiv","recent","redeliv","refer","replay","repli","requir","restarts.","restarts/resubscribes,","resum","rich","same","seamlessli","secondari","seconds.","sequenc","server","server\";","server\"];","server.","set","signifi","softwar","sourc","specif","specifi","start","storag","storage)","store","stream","streaming_modul","style=\"rounded\",","subgraph","subject","subject'","subject,","subscrib","subscript","subscription.","subsystem","support","surviv","suspend","synadia","system","thought","thu","time.","timestamp","timestamp,","to\"","track","transmit","unacknowledg","under","until","us","usage,","value\"","via","whether","windows.","written","{","|","}"],"nats_streaming/nats-streaming-install.html":["%","(nat","(no","(optional)","(x86,","*","0.0.0.0:4222","0.0.0.0:8222","0.3.1","0.9.4","100","1000","1000000","13:11:44.059012","13:11:44.059830","13:11:44.061544","13:11:44.061966","13:11:44.396819","13:11:44.396832","13:11:44.396837","13:11:44.396839","13:11:44.396842","13:11:44.396844","13:11:44.396855","13:11:44.396858","13:11:44.396859","13:13:10.048663","13:13:10.048843","13:13:10.048890","13:13:10.048968","13:13:10.048992","13:13:10.388282","13:13:10.388301","13:13:10.388309","13:13:10.388312","13:13:10.388316","13:13:10.388319","13:13:10.388333","13:13:10.388338","13:13:10.388341","2016/10/31","4222:","8222","8222.","976.56",":","[18085]","[18122]","[inf]","accept","ag","alway","anytim","arm)","authentication,","avail","available:","binari","binary,","brew","byte","channel","channels:","choco","chocolatey:","client","cluster]","clustering).","configur","connect","default","docker","embed","enabl","enabled,","environ","expos","file,","follow","github","github.com/nat","go","homebrew:","http","hub","hub.","imag","instal","interfac","invok","io/nat","latest","limit","linux","listen","m","maco","macos,","make","mb","memori","messag","messages:","method","monitor","nat","note","numer","offici","option","page.","platform","pleas","port","procedur","readi","releas","run","same","see","server","server)","server).","server.","server[test","set","stan:","standalon","start","store","stream","subscriptions:","successfully,","sure","tcp","tutori","unlimit","up","used.","version","version.","version:","via","want","way","window","windows,","x86_64)","x86_64,"],"nats_streaming/nats-streaming-tls.html":["\"joe\"","%","(nat",">","auth","authent","authorization,","automat","bear","both","ca","ca.pem","cert.pem","certif","cipher","client","clients.","command","commands,","config","configur","connect","credentials.","defin","emb","embed","enabl","example,","example:","file","file,","file.","follow","found","function","further","however,","it'","itself.","key","key.pem","line","line,","match","mean","mechan","mind","multi","nat","note","order","paramet","parameter.","parameters,","parameters.","parameters:","pass","privat","proper","relat","relationship","requir","required,","result","run","same","secur","server","server'","server).","server,","server.","set","sever","singl","specifi","straightforward.","stream","such","suit","these:","three","through","tl","tls.","tls_client_cacert","tls_client_cert","tls_client_key","tlscacert","tlscert","tlskey","token.","two","typic","us","usag","used:","user","users,","verif","way","you'd","โ€”pass","โ€”user"],"nats_streaming/nats-streaming-protocol.html":["(.),","(describ","(inbox)","*alway","*must","*not",".bar",".cluster","_stan.discover.myclust","above),","ack","ackinbox","ackinbox:","acknowledg","acknowledged.","ackwaitinsec","ackwaitinsecs:","alive.","allow","alphanumer","andfoo..bar","arriv","asynchron","atop","attempt","avail","bar,","be","below.","briefli","buffer","buffers.","byte","call.","case","certain","channel","charact","click","client","client,","client.","clientid:","close","closerequest","closerequests:","closeresp","closerespons","closing,","cluster","commun","compris","connect","connection.","connectrequest","connectrespons","connectresponse,","consid","contain","convent","core","correl","correspond","crc32","crc32:","creat","current","data","data:","default","defin","definition:","delimit","deliv","describ","descript","detail","dot","durabl","durablename:","durat","e.g.","e.g.:","each","embed","empti","empty/omit","enumer","error","error:","event","example,","explain","fail.","failur","field","field.","file.","finish","first:","flag","follow","foo,","foo.","foo.bar","foo.bar,","foo.bar.baz","formal","free","futur","gener","global","go","google'","group","guarante","guid","guid:","handl","heartbeat","heartbeatinbox:","heartbeats,","heartbeats.","here.","histori","honored.","id","id,","identifi","ieee","inbox","inbox:","includ","incom","indic","inflight","inform","information,","last","lastreceived:","listen","make","marshal","maximum","maxinflight:","messag","message,","message.","messages.","more","msgproto","mycluster,","name","names,","names:","nat","new","newonly:","non","notifi","number","occur","on.","option","order","origin","particular","pattern","payload","persist","point","prefix","present,","process","processed.","protocol","provid","puback","publickey:","publish","published,","publisher.","pubmsg","pubprefix:","qgroup:","queue","receiv","received.","redeliv","redelivered.","redelivered:","regard","replay","repli","reply.","reply:","repres","request","request.","request/repli","requir","reserv","resources.","respond","respons","restart","result","retriev","return","same","save","section","see","send","sensit","sent","sequenc","sequence:","sequencestart:","server","server,","server.","sha256","sha256:","sit","specif","specifi","start","startposit","startposition:","startsequ","startsequence:","starttimedelta","starttimedelta:","store","stream","string","string,","structur","subject","subject'","subject,","subject.","subject:","subrequest","subrequests:","subscrib","subscript","subscriptionrequest","subscriptionrequest.","subscriptionrespons","subscriptionresponse.","success","successful,","support","surviv","tabl","time","timedeltastart:","timeout","timestamp:","to,","token","type","underli","uniqu","unique,","unique;","unsubcrib","unsubrequests:","unsubscrib","unsubscriberequest","up","upon","us","usage:","used,","valid","whitespace,","wildcard","wildcards:","within","without"],"nats_streaming/nats-streaming-swarm.html":["#","$","$i","$random","%","&","'","'sequence:1","'sequence:2","'sequence:3","'world'","(in","1","1,node","1:","1:4222","1:4222,nats://nat","1:6222,nats://nat","2,node","2:","2:4222,nats://nat","2:6222,nats://nat","3","3:","3:4222","3:6222","3`;","4:",":","[#1]","[#2]","[#3]","[17010]","[hello]","[hello],","[hello]:","[swarm]","\\","`seq","ad","allow","attach","avail","begin","below","both","cd","client","clientid:","clientid=[17010],","cluster","cluster.","cluster_id","cluster_node_id","cluster_p","clusterid:","confirm","connect","connect,","contain","creat","data:\"world\"","deliverallavail","dir","do","docker","done","driver","durable=[]","end","even","exampl","example).","example,","examples/stan","exist.","file","find","follows:","go","golang:latest","hello","id","io/go","join","listen","messag","name","nat","nats://0.0.0.0:6222","nats://nat","nats:1.1.0","nats_serv","network","next","next,","node","note","notic","now","option","overlay","possibl","process","pub/main.go","publish","qgroup=[]","receiv","replay","root@d12f9f3fcdde:/go#","root@d12f9f3fcdde:/go/src/github.com/nat","rout","run","s","same","servic","service.","session","so,","src/github.com/nat","step","store","stream","streaming#","streaming/","streaming:0.9.2","sub/main.go","subject:\"hello\"","subscrib","sudo","swarm","though","three","timestamp:1526948600795366785","timestamp:1526948604613783399","timestamp:1526948606124258269","us","via","world"],"nats_tools/mkpasswd.html":["#iclkrphupstmacwzmigxr","$2a$11$3kidacxw.glsl1.u5nka6eunndlv5hv9tiuup7ehhmt6nm9myw1a","(util/mkpasswd.go).","******","*******",">","add","advantag","along","alreadi","alternatively,","argument","associ","authent","author","automat","bcrypt","bcrypt.","can:","cd","client","clone","command","configur","configuration.","correct","creat","derek","desir","distribut","doing:","easili","enter","file'","flag","gener","git","git@github.com:nat","github.com/nat","go","hash","hash,","hash.","hash:","includ","instal","installed,","installed:","io/nat","it:","line,","mkpasswd","mkpasswd.go","mkpasswd:","nat","needed.","new","note","p","pass:","password","password,","password:","plain","plaintext","protect","provid","reenter","replac","run","section.","secur","selected,","server","server,","server/util/mkpasswd","simpli","still","store","suppli","supplied.","support","take","text","this,","token","tool","us","user:","util","verifi","version","{","}"],"nats_tools/nk.html":[">","attacks.","authent","authentication,","author","awesom","base","care.","challeng","client","client.","command","configur","connect","control","digit","ed25519.","enter","first","follow","gen","gener","github.com/nat","go","guard","highli","https://github.com/nat","ident","immun","instal","installed,","io/nk","io/nkeys/nk","key","key,","key.","keys;","letter","line","make","need","nk","nkey","nkey:","nkeys,","nkeys.","output","playback","privat","prompt:","prove","provid","public","pubout","random","replac","repository.","request,","requir","s","safe","second","secret","secur","seed","seed.","server","server.","shared.","sign","signatur","stand","start","store","suacssl3uahudxkfsnvuzrf5uhpmwz6bfdtj7m6usdxiednppqyyycu3vi","succeeds,","succeeds.","system","thu","token","tool","treat","u","udxu4rcsjnzoiqhznwxhxordprtgnjahahfrgzneejcpqtt2m7nlcnf4","user","user,","user.","valid","verifi","without","work","youโ€™ll"],"nats_tools/nsc/":[">","account","accounts,","activ","add","allow","basic","brows","built","check","configur","creat","credenti","curl","delet","describ","document","documentation.","download","easy:","edit","export","file","find","found","gener","help","here","here:","https://raw.githubusercontent.com/nat","import","instal","io/nsc/master/install.pi","itself:","key","l","latest","manag","more","nat","nsc","onlin","operators,","orient","out","permiss","publish","python","script","servic","sign","specif","stream","subscrib","syntax,","system.","task","to:","tool","tool.","tutori","us","usag","user","users,","variou","version","within","work","|"],"nats_tools/nsc/nsc.html":["\">\"","\"test\"","\"testaccount\"","\"testuser\"","\"~/.nkeys/test/accounts/testaccount/users/testuser.creds\"","\"~/.nkeys/test/accounts/testaccount/users/testuser.nk\"","$nkeys_path","$nsc_home","'nats'","(more","(seed)","(the",".cred","/jwt/v1/accounts.","/users/synadia/.nsc/nats/test/test.jwt","04","19:48:55","19:58:01","2019","20:36:25","24","9090.",":",">","[#1]","[>]","[hello]","[hello]:","abov","ac7po3mrev26","accept","access","account","account).","account,","account.","account:","accounts,","ad","add","again,","allow","anoth","anyon","are.","armor","artifacts.","assum","authentication,","author","base","basic","be","belong","built","call","carefully.","central","chang","client","cluster","command:","complet","config","configur","configuration.","connect","connections,","contain","context","creat","create,","created.","cred","cryptograph","current","data","declar","default","default,","delet","describ","desir","detail","details.","dir","directly,","directly.","directori","do,","do:","doesnโ€™t","donโ€™t","earlier).","easier","easili","edit,","effect","enabl","encod","end","enter","entities,","entities:","env","environ","environment:","etc.","expect","experi","expir","export","expos","extract","fail","file","file.","first","flag","format","full","gener","github.com/nat","go","guard","guide,","hello","hierarchi","id","id,","ident","identifi","identity,","identity.","import","incantation,","information.","instal","installed,","instead","interest","io/go","io/nat","issu","issuer","it:","jwt","jwt,","jwts,","key","key,","key.","letter","letโ€™","librari","libraries.","limit","limits,","line,","listen","live.","local","localhost","locat","locations.","logic","make","manag","map","max","mem","memori","messag","message:","minimum","more","move","msg","multipl","n","name","nat","nats/examples/nat","need","network","nkey","nkey.","nkeys_path","nonc","none","note","now","now:","nsc","nsc_home","number","o,","oayi3yuzswdn","oayi3yuzswdnmerd2in3hzsip3ja2e3vdtxstevoiii273xl2nabjp64","one.","one:","oper","operator).","operator,","operator:","option","output,","over","part,","path","payload","point","port","print","privat","process","process.","prove","provid","pub","public","publish","put","queri","readi","receiv","refer","regard","relat","reli","request","requir","resolv","resolver.","resolver:","respect","respons","run","s","s.","safe","said,","scenarios:","second","secret","secrets.","see","seed","server","server.","servers,","serverโ€™","session","set","setup","shows:","sign","signatur","simpl","simpli","simplifi","singl","somewhat","space.","special","specif","specifi","src","start","static","store","sub","subject","subscrib","subscriber:","subscript","success!","such","talk","task","tell","test","test,","test:","testaccount","testaccount:","testus","testuser.","thereโ€™","those","through","time","together,","tool","tool.","tooling:","treat","true","truncat","two","type","u","ucqb7nonbkrc","unlimit","up","url","url(http://localhost:9090/jwt/v1/accounts/)","url.","us","usag","user","user,","user.","utc","valu","variou","verifi","view","w","want","way","wildcard","work","written","youโ€™ll","~/.nkey","~/.nkeys,","~/.nkeys.","~/.nkeys/test/accounts/testaccount/users/testuser.cr","~/.nkeys/test/test.nk.","~/.nsc","~/.nsc/nat","~/.nsc/nats.","~/.nsc/nats/test","~/.nsc/nats/test/test.jwt.","~/.nsc/nsc.json","โ€”help","โ€˜testuserโ€™:","โ€™natsโ€™","โ€œ~/.nkeys/test/accounts/testaccount/testaccount.nk\"","โ€œ~/.nkeys/test/test.nkโ€","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"nats_tools/nsc/streams.html":["\">\"","\"a.b.c.>\"","\"a.b.c.d\"","\"aal5q2b3smso5as3apjfunaikuceqjpaq76xebtvocqcxxgkp3ymggn4\".","\"abc\"","\"abc.>\"","\"accountb\"","\"hello\"","\"pabc\"","\"vnt3y32i5fntehivl6pinejnnz6z2bggej2qwna3tpq4a4kbrghq\"","\"~/.nkeys/test/accounts/accountb/users/userb.creds\"","\"~/.nkeys/test/accounts/accountb/users/userbโ€","#","'hello'","/tmp/activation.jwt","/tmp/activation.jwt.","/users/synadia/.nsc/nats/test/test.jwt","04","14:20:13","2019","21:33:58","21:51:02","21:58:14","22:04:29","25","29",":",">","[#1]","[>]","[a.b.c.a]","[a.b.c.d.a.b.c.d]:","[a.b.c.d]","a.b.c.>","a.b.c.>,","a.b.c.a","a.b.c.d","aal5q2b3smso","aal5q2b3smso5as3apjfunaikuceqjpaq76xebtvocqcxxgkp3ymggn4","abc","abc.>","abc.>.","abov","ac7po3mrev26","ac7po3mrev26u3lfzfp5bn3hai32x3pklbrvmpaetlehwpqeug7ejy4h","access","account","account,","account.","account:","accountb","accounts,","accounts.","accountโ€™","activ","actual","ad","add","addit","advertis","allow","alreadi","approach","article.","associ","author","avail","befor","begin","benefit","c","cat","chang","check","client","client:","completeness,","config","connect","contain","content","creat","cred","data","decod","defin","describ","design","detail","details.","differ","directli","enabl","end","expect","expir","export","export,","export.","exported.","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijwtlqzwtmystvgtlrfselwtdzqsu5fsk5owjzamkjhr0vkmlfxtkezvfbrnee0s0jsr0hriiwiawf0ijoxntu2mji5ndk0lcjpc3mioijbqzdqtznnukvwmjzvm0xgwkzqnujom0hbstmywdnqs0xculznueffvexfsfdquuvvrzdfslk0scisim5hbwuioijhlmiuyy5kiiwic3viijoiqufmnveyqjnttvnpnuftm0fqskzvtkfjs1vdrvfkuefrnzzyrujuvk9duunywedludnztudhtjqilcj0exblijoiywn0axzhdglvbiisim5hdhmionsic3viamvjdci6imeuyi5jlmqilcj0exblijoic3ryzwftin19.ea0w","f","fanci","file","flag.","foreign","forward","gener","given","grant","here:","host","id","import","import.","information,","inspect","intended:","invocation,","issu","issuer","it:","jti","jwt","jwt.","key","know","know:","learn","letโ€™","listen","local","look","manag","mani","map","match","max","mcxfxyipek0mugaljj7t5jxehtar7mny5iycj7nhldohu5ifog2llfw_hptcfa4qa989vqecsitubucaa","messag","messages.","more","msg","name","nat","natur","necessari","need","network","none","note","nsc","o","oayi3yuzswdn","on","operator:","output","pabc","path","pattern","payload","perform","permiss","prefix","print","privat","provid","pub","public","publish","receiv","receive:","redirect","remot","requir","resolver:","secur","self","server","server,","server.conf","server.conf:","server:","share","sign","simpli","someth","space.","specif","src","stable.","start","store","stream","stream,","stream.","stream:","streamโ€™","sub","subject","subject.","subscrib","subscript","subset","success!","target","test","testaccount","thing","this:","time","token","token,","token.","true","type","unlimit","updat","updated,","url","url(http://localhost:9090/jwt/v1/accounts/)","url.","user","userb","utc","valid;","verifi","visibl","want","web","whenev","wildcard","wildcard.","wonโ€™t","ye","youโ€™ll","~/.nkeys/test/accounts/accountb/users/userb.cr","~/.nkeys/test/accounts/testaccount/users/testuser.cr","~/.nsc/nats/test","โ€”subject","โ€˜a.b.c.dโ€™","โ€œaccountbโ€","โ€œuserbโ€","โ€œ~/.nkeys/test/accounts/accountb/accountb\"","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"nats_tools/nsc/services.html":["\"aal5q2b3smso5as3apjfunaikuceqjpaq76xebtvocqcxxgkp3ymggn4\".","\"accountb\"","\"help\"","\"help.>\"","\"help.aal5q2b3sm\"","\"i","\"iy4zuwlnloto5n5udlofebcomhb6mkqmk4zela2bspkmxsearxoa\"","\"phelp\"","\"srv\"","\"~/.nkeys/test/accounts/accountb/users/userb.creds\"","\"~/.nkeys/test/accounts/accountb/users/userbโ€","'i","'me'","/tmp/activation.jwt","/tmp/activation.jwt.","04","14:20:13","14:37:49","14:59:42","15:01:13","15:26:39","2019","29",":",">","[#1]","[_inbox.n3iiqwbiaqfpoincbpbrum.zjbntkb3]","[_inbox.v6kax0v1bu87k49hbg3dgn.stigjf0d]","[help.>]","[help.aal5q2b3sm]:","[help]","[help]:","aal5q2b3smso","aal5q2b3smso5as3apjfunaikuceqjpaq76xebtvocqcxxgkp3ymggn4","abov","ac7po3mrev26","ac7po3mrev26u3lfzfp5bn3hai32x3pklbrvmpaetlehwpqeug7ejy4h","access","account","account,","account.","account:","accountb","accounts'","accounts,","accounts.","accountโ€™","activ","actual","ad","add","addit","advertis","again,","allow","approach","article.","associ","author","avail","before,","begin","benefit","cat","check","client","client:","completeness,","connect","content","creat","cred","data","declar","decod","describ","design","detail","details.","differ","directli","enabl","end","expir","export","export,","export:","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijjwtravvdmtkxpve81tjvvrexprkvcq09nsei2tutrtus0wkvmqtjcu1bltvhtrufswe9biiwiawf0ijoxntu2ntuwmdczlcjpc3mioijbqzdqtznnukvwmjzvm0xgwkzqnujom0hbstmywdnqs0xculznueffvexfsfdquuvvrzdfslk0scisim5hbwuioijozwxwlkfbtdvrmkizu00ilcjzdwiioijbquw1utjcm1nnu081qvmzqvbkrlvoqullvunfuupqqve3nlhfqlrwt0nrq1hyr0tqm1lnr0doncisinr5cguioijhy3rpdmf0aw9uiiwibmf0cyi6eyjzdwjqzwn0ijoiagvscc5bquw1utjcm1nniiwidhlwzsi6innlcnzpy2uifx0.vfyhpa0e67rfr","f","file","flag.","foreign","gener","github.com/nat","go","grant","handl","handywork:","help","help\"","help'","help.>","help.aal5q2b3sm","help.aal5q2b3sm.","host","id","import","import.","inspect","instal","invocation,","io/go","issu","issuer","jti","jwt","jwt.","key","know","know:","learn","letโ€™","listen","local","look","manag","mani","map","max","messag","message:","more","msg","name","nat","nats/examples/nat","natur","necessari","need","network","none","note","nsc","o","oayi3yuzswdn","on","output","path","payload","perform","permiss","phelp","privat","process","provid","public","publish","reach","receiv","redirect","remot","repli","replier:","reply,","req","request","request:","requestor:","requests,","requir","respons","response:","review","rpli","secur","self","send","server","server,","servic","service,","service.","serviceโ€™","set","share","sign","simpli","specif","src","stable.","start","store","stream","streams,","subject","subject:","subscrib","subscript","subset","success!","target","test","testaccount","thing","this:","time","token","token,","token.","tools:","true","type","unlimit","up","updat","updated,","url","url.","user","userb","utc","valid;","verifi","via","visibl","want","web","whenev","wildcard","wildcard.","xfy7q7ps90hzzvp5k3osldjadrixp4udpuqeuhv9qk9emk40pcgh6nzj7gmazlu6rpacbxag","ye","youโ€™ll","~/.nkeys/test/accounts/accountb/users/userb.cr","~/.nkeys/test/accounts/testaccount/users/testuser.cr","โ€œaccountbโ€","โ€œuserbโ€","โ€œ~/.nkeys/test/accounts/accountb/accountb\"","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"nats_tools/nsc/signing_keys.html":["\"/users/synadia/.nkeys/o2/accounts/a/a.nk\"","\"/users/synadia/.nkeys/o2/accounts/a/users/u.creds\"","\"/users/synadia/.nkeys/o2/accounts/a/users/u.nk\"","\"/users/synadia/.nkeys/o2/o2.nk\"","\"a\"","\"o2\"","\"u\"","#","(accounts,","(jti).","(oper","(specifi","(the","04","2019","21:32:43","22:33:13","22:43:46","29","30",">","a.","abhyl27uahhq","abhyl27uahhq.","abhyl27uahhqxa5hlh2ywhfqbip4ympc7rnz4psframjhsszuuixf2rv","account","account)","account,","account.","accounts,","accountโ€™","activ","actual","ad","ad7hdy5as3lt","add","again","allow","altern","alway","aris","around","associ","automat","begin","behind","bit","call","case","check","close","closely.","complexity.","compromis","compromise.","concept","connect","consid","creat","cred","data","deal","defens","degre","describ","detail","discussed,","distribut","doesnโ€™t","earlier.","easili","edit","effect","enabl","end","entiti","entity,","entity.","environ","escap","everyth","expected,","expir","export","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijpmk5bmknaq1zinkqytevcqkndvufhtezawfjpttdktes1q1zxrdzmvlppvu9tuexds0dbiiwiawf0ijoxntu2ntczntyzlcjpc3mioijpqks3m09muu9kv05zve4ytzq2svprtjrxtvndn0hwvk5bm1k2vfdqv0tdrlhjv1mzwextqvvjuyisim5hbwuioijpmiisinn1yii6ik9cszczt0xrt0pxtllutjjpndzjwlfonfdnu0m3sfzwtkezwtzuv1bxs0ngwelxuznytfnbvultiiwidhlwzsi6im9wzxjhdg9yiiwibmf0cyi6eyjzawduaw5nx2tlexmiolsit0rnwunjnvrtwlk2tuzmt0jcutjstljcukfyuktks0fdnvvbq1jdnkg2q0pyq0xsmlnuvedbqveixx19.","feel","field","file","file.","first","flag","futur","gen","gener","get","global","go","greater","guard","hammer","hammer.","hand.","handi","handl","happen","have","have.","hold","hook","id","ident","identifi","identities,","import","invalid","issu","issuer","jwt","jwt.","k","k).","key","key,","key.","key:","keypair:","keys,","keys.","kind","larg","larger","leaf","letโ€™","line","list","manag","manual","map","match","max","mean","messag","missing,","mitig","modifi","more","msg","multipl","n","name","nat","network","new","nk","nk.","nk:","nkey","nkey.","nkeys.","node","none","normal","now","nsc","number","o):","o2","obk73olqojwn","odmyci5tszy6","odmyci5tszy6mflobbq2rnrbraxrkjkac5uacrc6h6cjxclr2sttgaaq","offer","on","one,","oper","operator:","operatorโ€™","out","parent","path","payload","presum","previous","privat","process","process,","product","provid","public","pubout","re","referenc","reissu","rejected.","release,","rememb","remov","revoc","revolv","rotat","saak3el5bw4zor7jvtxz4tj6rqbsoixk27afppsyvp4kdhjksrqfvrahia","said,","same","save","scenario","secret","secur","see","sign","signed.","signingkeys,","singl","sk","sledg","soaihsqsam3zji5w6u5m4inh7fucqq5etj5rmpvjzcjltdrey6znee6lzq","somehow","someon","specifi","src","standard","start","store","strategi","subject","subscript","success!","suppli","thereโ€™","time","to:","token","tokens)","track","true","trust","typic","u","udykzhlxfh56","uniqu","unlimit","us","use.","user","users,","utc","valid","validated,","vnszhmoa3trggltz3pgu3bpscb0uj5rdvthzzoyz18_wlcbfo6h8s01s3d2qf9j36lkhpplmtupheyqeo04aw","want","way","weโ€™ll","whenev","wild,","wild.","wildcard","work:","workflow.","you.","yourself:","youโ€™ll","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"nats_tools/nas/":["(for","2.0","account","authentication.","configur","content","directori","directory,","enabl","file.","from:","here.","host","http","installations,","jwt","jwt.","learn","memori","mode","mode,","modified,","more","mostli","nat","notif","notifi","nsc","number","oper","purposes)","read","resolv","serv","server","server'","simpl","static","static,","store","support","test","updat","vend","veri"],"nats_tools/nas/nas_conf.html":["$nkeys_path","$nsc_home","(for","(or",".jwt.","/tmp/jwt","/users/synadia/.nsc/nats/test","/users/synadia/.nsc/nats/test/test.jwt","0.0","10","11:22:41","11:22:41.845148","11:22:41.845241","11:22:41.845245","11:22:41.846367","11:22:41.846459","11:22:41.855291","11:22:41.855301","11:22:41.855303","11:22:41.855306","11:33:40","11:33:40.501305","11:33:40.501383","11:33:40.501404","11:33:40.501430","11:33:40.510273","11:33:40.510283","11:33:40.510285","11:33:40.510291","2019","2019/05/10","4","9090","9090.",">","[inf]","above.","accept","accepted.","account","account.","accounts,","ad","amount","ansi","around","attempts.","avail","basic","befor","between","block","block.","ca","case","cdt","cert","certif","certificate.","chang","cluster","color","complet","complete.","config","configur","configuration.","configured,","connect","connection.","connecttimeout","continuing.","correctly,","creat","cred","credenti","current","debug","default","descript","dev","develop","dir","dir.","directori","directory.","doesn't","doing:","don't","easili","effect","enabled)","env","environ","environment.","escap","exampl","example:","exlus","expand","extens","fail","file","file.","filepath","find","fire","flag","flag,","folder","follow","fri","github.","here'","host","http","http/","id","important,","inform","interest","interfac","introspect","it'","jwt","jwt.","jwts,","key","key.","keys)","last","let'","like:","line","list","listed,","listen","load","localhost","locat","log","logged.","look","match","max","mean","member","messag","messages.","millisecond","mkdir","mutual","name","nat","necessary.","need","non","note","notif","nsc","on","on.","only.","oper","operator.","operator:","operatorjwtpath","operators,","option","option)","option.","options.","options:","path","pid","plain","pleas","port","post","previou","print","printout","process","product","project'","provid","public","publish","push","read","readonli","readtimeout","receiv","reconnect","reconnecttimewait","refer","request","requests,","requests.","requir","resolv","resolved.","resolver:","respons","return","revolv","root","run","same","see","sequences.","serv","server","server,","server.","servers.","set","settings:","setups,","shard","shown","sign","simpl","specifi","start","store","store.","suffici","system","systemaccountjwtpath","take","test","test:","testaccount","time","timestamp","tl","trace","true,","updat","updates.","url","url(http://localhost:9090/jwt/v1/accounts/)","us","usag","usercredenti","valu","veri","version","wait","want","with:","write","writetimeout","you'll","~","~/.nkey","~/.nsc","~/.nsc/nat","~/.nsc/nats/test","~/.nsc/nats/test/test.jwt","~/.nsc/nsc.json","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"nats_tools/nas/inspecting_jwts.html":["\"5ymro4knmywqdmrahvtt4kx63ca2l3m6f4vm3s7nngpmccatorxq\",","\"a.b.c.>\",","\"abc\",","\"ac7po3mrev26u3lfzfp5bn3hai32x3pklbrvmpaetlehwpqeug7ejy4h\",","\"account\",","\"alg\":","\"ed25519\"","\"exports\":","\"iat\":","\"iss\":","\"jti\":","\"jwt\",","\"name\":","\"nats\":","\"oayi3yuzswdnmerd2in3hzsip3ja2e3vdtxstevoiii273xl2nabjp64\",","\"stream\"","\"sub\":","\"subject\":","\"testaccount\",","\"typ\":","\"type\":","(2019","(number","(token_req","/jwt/v1/accounts/.","04","1556229062","1970)","25),",">","?decode=true.","[","],","a.","abbrevi","abov","above,","access","account","account,","add","alway","claim","claim.","creat","curl","date","decod","decoded.","detail","don't","endpoint","entiti","exampl","export","fals","field","for.","give","help","here'","http://localhost:9090/jwt/v1/accounts/ac7po3mrev26u3lfzfp5bn3hai32x3pklbrvmpaetlehwpqeug7ejy4h\\?decode=tru","human","iat","id","id.","import","import.","in,","inform","inspect","interest","is:","iss","issu","issued.","issuer","issuer.","jti","jwt","key","know","letter","letโ€™","list","littl","more","name","nat","o.","on","ones:","operator.","public","queri","readabl","retriev","second","see","server","server,","set),","standard","start","stream","stream.","string","sub","subject","terse,","thu","unique.","unix","use.","valu","yourself.","{","}","โ€ฆ"],"nats_tools/nas/mem_resolver.html":["\"/users/synadia/.nkeys/memory/accounts/a/a.nk\"","\"/users/synadia/.nkeys/memory/memory.nk\"","\">\"","\"a\"","\"memory\"","\"ta\"","$nsc_home/nats//.jwt","$nsc_home/nats//accounts//.jwt","/users/synadia/.nkeys/memory/accounts/a/users/ta.cr","/users/synadia/.nsc/nats/memory/accounts/a/a.jwt","/users/synadia/.nsc/nats/memory/memory.jwt","01o6zbz1uzftojgvwsts6yv2_849b9iuxsd","04","2019","20:21:34","30","8kp1imxhdoba",">","[>]","abov","account","accounts,","acsu3q6ltlbvlgaquonagxjhvnwgskkaua7iy5tb4z7pleksr5o6jtgr","acsu3q6ltlbvlgaquonagxjhvnwgskkaua7iy5tb4z7pleksr5o6jtgr:","ad","add","allow","basic","built","c","cat","chang","config","configur","configuration.","connect","creat","cred","data","describ","detail","donโ€™t","entiti","entries,","environ","expir","export","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijprfhjsvi2wlg1q1azmlfjtfczwfbenettsdyzufnnsezhukpat05dr1rlvvbislrlq0jbiiwiawf0ijoxntu2nju1njk0lcjpc3mioijprfdasjjlqvbgnzzxt1dnuenkrjzcwtrrsvbmvfvjwtrksujmvtrlm1lerznhselxqlzxqkhvwiisim5hbwuioijbiiwic3viijoiquntvtnrnkxutejwtedbuvvptkfhwepivk5xr1nls0fvqtdjwtvuqjran1bmruttujvpnkpur1iilcj0exblijoiywnjb3vudcisim5hdhmionsibgltaxrzijp7inn1ynmioi0xlcjjb25uijotmswibgvhzii6ltesimltcg9ydhmioi0xlcjlehbvcnrzijotmswizgf0ysi6ltesinbhewxvywqioi0xlcj3awxky2fyzhmionrydwv9fx0._ww5c1trich8a4jhybxezzp8rj17pins8qlzz","few","file","gener","id","import","issu","issuer","jwt","jwts.","key","leaf","letโ€™","listen","map","max","memori","mostli","msg","n","name","nat","node","none","nsc","object","odwzj2kapf76wowmpcjf6by4qipltuiy4jiblu4k3ydg3ghiwbvwbhuz","often.","on","oper","operator.","operator:","payload","privat","public","refer","rememb","requir","requires:","resolv","resolver:","resolver_preload","resolver_preload:","save","server","server.conf","server:","set","setup","setup:","simplest","start","store","sub","subscriber:","subscript","success!","ta","test","true","unlimit","us","user","utc","veri","w","wildcard","{","}","โ€œ/users/synadia/.nkeys/memory/accounts/a/users/ta.creds\"","โ€œ/users/synadia/.nkeys/memory/accounts/a/users/ta.nk\"","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"nats_tools/nats_top/":["$gopath","(default","(see","(uptime:","0","0.6.4","0.8%","1","1.","1.0m","1.1.0","1.1m","1014.6k","1024).","11.1k","11.2k","11.4k","11.5k","11.6k","127.0.0.1:56134","127.0.0.1:56144","127.0.0.1:56151","127.0.1.1:56138","2","3","3.0m","31m42s)","3389.7","34.2k","37.9","4","5","5.9m","6.0m","6779.4","68.3k","75.8","8","873.5k","905.1k","?","[","_inbox.a96f3f6853616154d23d1b5072","abov","allow","argument","arguments.","below).","both","by]","bytes,","bytes/sec:","bytes:","bytes_from","bytes_from,","bytes_to","bytes_to,","bytes_to.","check","cid","cid,","command","commands.","conjunct","connect","connections:","consumers:","cpu:","current","d","delay_in_sec","delay_in_secs]","depend","descript","display","dynam","e","environment.","error","example:","fact","field","flag","flag.","follow","following:","foo,","get.","github.com/nat","go","hello","help","host","http","in:","incld","inform","instal","installed,","interv","io/nat","key","lang","lang,","largest","limit","line","load:","m","memory:","messag","messages,","monitor","monitor]","more,","msgs/sec:","msgs:","msgs_from","msgs_from,","msgs_to","msgs_to,","n","nat","note","note:","num_connect","num_connections]","number","o","on","onc","option","options.","out","out:","pend","pending,","port","preserv","primari","provid","q","queri","quit","real","receiv","refresh","request","respect","run","s","s,","sampl","screen","second).","server","server,","server.","server:","server]","servers.","set","set,","setup.","show","size","slow","sort","sort,","sub","subs,","subs.","subscript","subscription,","subscriptions.","subscriptions:","such","sudo","summari","system","tell","time","time.","toggl","tool","top","top.","tutori","tutorial.","us","usag","user","user'","valu","value.","varieti","version","version.","view","view,","walkthrough"],"nats_tools/nats_top/tutorial.html":["%","(uptime:","0","0.0","0.0%","0.6.6","1","1.","1.0k","1.1.0","10","10.","10.3m","10.4m","105","108","109","115","122","124","154","185","187","1h2m23s)","1h7m0s)","2","2.","20","21","260","2m2s)","3","3.","302","30m51s)","38","39","4","4.","427","45m40s)","48","5.","512","52","56","6","6.","6.3m","643","651","7.","792","8","8.","81","8222","83","9.","90","91","98","::1:58651","::1:58922","::1:58953","::1:59259","::1:59342","::1:59349","::1:59708","::1:59758","::1:59817","[bytes_to]:","as:","ascend","best","bytes/sec:","bytes:","bytes_from","bytes_from,","bytes_to","bytes_to,","bytes_to.","check","cid","cid,","client","clients.","column","command","connect","connections:","consumers:","cpu:","differ","display","e","enabl","enabled,","enter","environ","exampl","example,","example:","exchang","experience,","explor","flag.","follow","foo","foo.bar","github.com/nat","go","host","in:","instal","instead:","io/nat","lang","lang,","largest","line","load:","m","memory:","messag","messages.","monitor","msgs/sec:","msgs:","msgs_from","msgs_from,","msgs_to","msgs_to,","multipl","n","nat","need","number","o","option","option,","order.","out:","pend","pending,","prerequisit","program","pub","q","queri","quit","realtim","refer","regist","restart","result:","run","s","see","server","server:","set","slow","sort","specifi","start","statist","statistics.","sub","subject","subs,","subscribers,","subscript","subscriptions.","subscriptions:","such","sudo","table:","toggl","top","top,","top.","tutori","up","us","version","want"],"nats_tools/natsbench.html":["$gopath","$gopath/src/github.com/nat","%","%gopath%.","(","(10000000","(2000000","(nats://localhost:4222)]","...","0.0.0.0:4222","0.0.0.0:8222","0.9.4","1","1,004,615","1,076,537","1,119,430","1,119,444","1,119,449","1,119,461","1,119,466","1,119,653","100000","10000000","102.49","107.66","117.06","12","13:26:32.037819","13:26:32.037912","13:26:32.037997","13:26:32.038020","14.57","14.58","15.33","16","16.43","17.08","1:n","2","2,009,230","2016/10/31","223,933","224,552","225,344","225,889","225,955","226,395","3.42","3.43","3.45","30.66","4,775,709","5","5,597,054","5,730,851","6,716,465","7,055,644","7,671,570","72.87","8222","85.40","87.45","937","955,150","955,153","955,154","955,156","955,157","955,279","[","[18541]","[1]","[2]","[3]","[4]","[5]","[inf]","[msgs=100000,","[msgs=10000000,","ad","aggreg","aggregate,","along","approaches;","assum","avg","bench","bench.go","benchmark","both","byte","chose","client","connect","connection.","csv","csvfile]","deviation.","directori","distribut","each","enabl","ensur","environ","environment.","evenli","examin","explanatory.","fast","first","follows:","foo","go","go.","gobin","golang","h","http","increas","individu","individually,","instal","io/go","learn","let'","lightweight","listen","look","m","max","mb/sec","measur","messag","message_size]","messages,","million","min","min/max/avg","monitor","monitor:","more","ms","msg","msgs)","msgs/sec","msgsize=16,","multipl","n","n)","n:m","nat","nats/examples/nat","note","now","np","np).","ns","num_msgs]","num_publishers]","num_subscribers]","number","on","option","option,","output","output:","path.","payload","per","performance.","performance:","place","prerequisit","prioriti","provid","pub","pub/sub","publish","publish/subscrib","published:","publishers,","pubs=1,","pubs=5,","purpos","readi","replac","report","routin","run","run:","s","second:","see","self","server","server.","set","setup.","show","simpli","singl","specifi","specified,","standard","start","statist","stats:","stddev","straightforward","sub","subs=0]","subs=1]","subs=5]","subscrib","subscriber:","subscribers,","subscribers.:","successfully,","syntax,","system","tell","test","throughput","tls]","tool","total","tune","tutori","tutorial,","two","up","us","usage:","use.","util","variabl","variable:","verifi","version","via","we'll","well","window","you'v","|","~"],"developer/":["api.","applic","book","check","client","combin","common","community,","contain","depend","develop","distribut","doc","doc,","doxygen","example,","familiar","featur","format","go","godoc","guidance,","information.","introduct","java","javadoc","javadoc.","languag","librari","link","more","nat","nats.go","nats.java","nats.net","nats.rb","nats.t","out","readm","separ","specif","sure","syntax.","techniques,","ts","us","well","yard"],"developer/concepts/intro.html":["(no","1","2}\"];","3","[penwidth=2,","[penwidth=2];","[shape=\"box\",","[shape=\"record\",","[splines=ortho,","activ","addit","applic","application:nat","between","broker,","build","central,","client","client(s)","code,","common","commun","comput","concept","connect","core","data","decoded,","default,","design,","differ","dir=\"forward\"];","discov","easi","easili","electron","encod","environments,","exchang","fire","forget","gnatsd","gnatsd;","graph","guarante","handl","height=0,","higher","increas","interdependencies,","involv","isol","label=\"\",","label=\"{","label=\"{appl","languages,","layer","let","level","listen","make","match),","messag","messages.","more","nat","need","network.","nodesep=1];","offer","on","onc","penwidth=1];","physic","process","program","provid","provides.","publish","publisher.","publisher:nat","publisher}\"];","qualiti","received,","received.","reliabl","resourc","same","scale","sent","sent,","service,","service.","share","simpl","streaming,","subject","subscrib","subscriber:nat","subscribers.","system.","systems.","tcp/ip","underli","us","volume.","width=4,","yourself.","{","|","}","}\"];"],"developer/concepts/subjects.html":["\".\"","\"alpha","*",".",">",">.","[label=\"msg\"];","[shape=box,","[shape=circle,","[style=\"invis\"];","again","although","alway","appear","applic","ascii","base","both","call","can't","case","chang","charact","clients,","clock","cluster.","configuration,","contain","creat","defin","depend","digraph","dot","each","eastern","element","end","example,","few","find","first","follow","form","fulli","fundament","future.","g","group","heavili","hierarchi","hierarchy.","label=\"gnatsd\"];","label=\"pub","label=\"sub","listen","logic","match","messag","messages,","messages.","monitor","more","multipl","name","names.","nat","numeric\"","on","other.","place","plu","provid","publish","rankdir=lr","receiv","relat","reserv","safeti","scope","second","secur","sensit","sent","separ","server","settings,","simplest","simplest,","singl","someth","sometim","special,","specif","specifi","stream","string","style=\"rounded\",","sub1","sub2","sub3","subject","subject,","subject.","subjects.","subjects:","subscrib","subscript","take","tap","tap.","time","time.*.east\"];","time.*.east,","time.eu.east","time.eu.east.","time.u","time.us\"];","time.us.*","time.us.*\"];","time.us.>","time.us.>\"];","time.us.east","time.us.east\"];","time.us.east.atlanta","time.us.east.atlanta\"];","time.us.east.atlanta,","time.us.east.warsaw","token","token.","tokens,","topics.","two","us","used,","want","whitespace.","wildcard","wildcard.","wire","without","world","zones,","{","}"],"developer/concepts/pubsub.html":["(but",">","[label=\"msg1\"];","[shape=box,","[shape=circle,","activ","bit","bit).","call","communication.","digraph","distribut","express","fan","implement","interest","label=\"publisher\"];","label=\"subject\"];","label=\"subscriber\"];","listen","live","mani","messag","message.","model","nat","nats_pub_sub","on","out","out.","own,","pattern","pub","publish","rankdir=lr","receiv","regist","regular","send","server","sometim","style=\"rounded\",","sub","sub1","sub2","sub3","subject","subscrib","through","tri","tutorial.","us","walk","wildcard","work","{","}"],"developer/concepts/reqreply.html":["=",">","[label=\"msg1\",","[label=\"msg1\"];","[shape=box,","[shape=circle,","[style=\"invis\",","allow","automat","automatically.","call","case","common","creat","digraph","exchang","exchange,","expect","fastest","first","flavor","function","gather","gather.","handl","ignor","inbox","involv","label=\"publisher\"];","label=\"reply\"];","label=\"subject\"];","label=\"subscriber\"];","later","librari","limit","live","mani","many.","messag","messaging:","multipl","nat","nats_request_repli","number","on","oper","optim","own,","pattern","perform","point","process","publish","publisher;","rankdir=lr","receiv","received.","repli","reply;","reply}","request","request/repli","requestor","respond.","respons","response.","return","same","scatter","server","set","sometim","speed","style=\"dotted\"];","style=\"rounded\",","sub1","sub2","sub3","subgraph","subject","subject.","support","through","timeout","timeout.","tri","tutorial.","two","uniqu","us","wait","walk","weight=2];","yourself.","{","{rank","}"],"developer/concepts/queue.html":["&","1\"];","1,2,3\"];","2\"];","3\"];",">","[label=\"msg","[shape=box,","[shape=circle,","add","although","anytime,","applic","auto","balanc","call","chang","change.","chosen","clients.","configur","consum","creat","defin","deliveri","digraph","each","fault","featur","form","great","group","group.","ideal","label=\"publisher\"];","label=\"queue\"];","label=\"subscriber\"];","live","load","member","messag","message.","multipl","name","name.","nat","nats_queu","new","on","one.","own,","processing.","provid","publish","published,","queue","randomli","rankdir=lr","receiv","regist","remov","restart","same","scale","server","server.","share","style=\"rounded\",","sub1","sub2","sub3","subject","subscrib","subscribers,","subscript","subscription,","subscriptions.","through","toler","tri","tutorial.","us","walk","without","work","workload","{","}"],"developer/concepts/acks.html":["=",">","[label=\"ack\"];","[label=\"msg1\"];","[shape=box,","[shape=circle,","[style=\"invis\",","ack","acknowledg","acks.","applic","bandwidth,","body.","concept","deliveri","digraph","do","easiest","empti","failures.","fire","forget","gather,","handl","idea","insur","know","label=\"publisher\"];","label=\"reply\"];","label=\"subject\"];","label=\"subscriber\"];","littl","lost.","messag","message,","nat","nats_request_repli","network","on","onc","publish","publisher;","rankdir=lr","receiv","repli","reply}","request","same","scatter","semantics,","sender","sever","side,","sides.","simpl","simpli","style=\"rounded\",","sub1","sub1[shape=box,","subgraph","subject","sure","system","take","time","timeout","turn","up","us","veri","way","weight=2];","world","{","{rank","}"],"developer/concepts/seq_num.html":[">","[label=\"updates.*\"];","[label=\"updates.1\"];","[label=\"updates.2\"];","[label=\"updates.3\"];","[shape=box,","[shape=circle,","anything.","ask","check","common","determin","digraph","drop","due","each","emb","etc...","example,","failure.","few","id","id.","includ","keep","label=\"publisher\"];","label=\"subject\"];","label=\"subscriber\"];","leverag","listen","lost","mani","messag","message,","message.","mind:","miss","nat","nats_pub_sub","network","number","on","option","order","pars","pattern","possible,","problem","publish","rankdir=lr","realli","receiv","resolv","see","send","sender","sequenc","simpl","situat","style=\"rounded\",","sub","subject","subject.","subscrib","thing","updates.*","updates.1,","updates.2,","us","{","}"],"developer/connecting/intro.html":["4222","be","client","connect","default","demo.nats.io:4222","exampl","identifi","indic","itself","librari","libraries,","mani","nat","nats.","nats.io,","nats://demo.nats.io:4222,","numer","option","port","previou","protocol","protocol.","provid","rang","reconnect","reli","remov","replac","requir","required.","resolv","server","server,","server.","settings.","sever","standard","support","test","throughout","timeout","tl","tls.","tls://demo.nats.io:4222.","url","us","way","whether"],"developer/connecting/default_server.html":["!=","#","'nats/client'","(c)","(err)",".catch/.fin",".then((c)","//",":=","=","=>","add","alternatively,","await","c;","client;","close","connect","connect()","connect();","default","defer","done","dosomething();","end","err","except","fail","failed(err);","gener","go","java","javascript","librari","log.fatal(err)","nats()","nats.connect();","nats.connect(nats.defaulturl)","nats.start","nats://localhost:4222:","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect()","nc.on('connect',","nc.on('error',","nc1","nc1.close();","nc1:","nil","pattern","promis","provid","python","requir","rubi","server","someth","special","throw","typescript","url,","us","way","{","|nc|","}","});"],"developer/connecting/specific_server.html":["!=","#","'nats/client'","(c)","(err)","//",":=","=","=>","[\"nats://demo.nats.io:4222\"])","allow","await","below","check","client","close","connect","connect(\"nats://demo.nats.io:4222\");","default","defer","demo","demo.nats.io:4222.","document","done","dosomething();","end","equival","err","example,","except","explicit","fail","failed(err);","format","full","go","host","hostname/ip.","is,","java","javascript","librari","library'","log.fatal(err)","nat","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.start(servers:","nats://demo.nats.io:4222","nats://demo.nats.io:4222,","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.on('connect',","nc.on('error',","nil","port","port,","protocol","python","remov","requir","rubi","see","server","simplifi","someth","specif","specifi","supported.","take","throw","to.","to:","typescript","url","url,","use:","{","|nc|","}","});"],"developer/connecting/cluster.html":["!=","\",\"))","\"nats://127.0.0.1:1222\",","\"nats://127.0.0.1:1223\",","\"nats://127.0.0.1:1224\"","\"nats://127.0.0.1:1224\"])","\"nats://demo.nats.io:4222\",","\"nats://localhost:1223\",","\"nats://localhost:1224\",","\"nats://localhost:4222\"","#","'nats/client'","(c)","(discuss","(err)","(semi",");","//",":=","=","=>","[","[\"nats://127.0.0.1:1222\",","[]string{\"nats://localhost:1222\",","]","])","]}","abil","about.","ad","addit","algorithm","allow","avail","await","be","behavior","build();","chang","check","checked,","client","client.","close","cluster","cluster,","code","configur","connect","connect({","connection,","creat","defer","dependent,","document","don't","done","dosomething();","down","dure","each","end","err","except","fail","failed(err);","fails.","failur","feed","few","first","front","function.","go","grow","handl","happen","includ","inform","initi","insur","java","javascript","know","known","later)","librari","line","list","log.fatal(err)","machin","member","members.","mesh","method.","multipl","nat","nats()","nats.connect(options);","nats.connect(strings.join(servers,","nats.connect({","nats.start(servers:","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(servers=[","nc.on('connect',","nc.on('error',","new","nil","note,","on","option","optional)","options.builder().","order,","organ","part","pass","pleas","possibl","protocol","provid","python","reason","reconnect","reconnect.","requir","rubi","running.","server","server(\"nats://localhost:1222\").","server(\"nats://localhost:1223\").","server(\"nats://localhost:1224\").","server,","servers.","servers:","someth","still","success","tell","thing","think","those","throw","tri","typescript","unavail","url","us","used.","usual","valid","{","|nc|","}","});"],"developer/connecting/connect_timeout.html":["!=","\"nats://demo.nats.io:4222\",","#","'nats/client'","//","10","1000",":=","=","api,","await","build();","client","close","common","connect","connect({","connectiontimeout(duration.ofseconds(10)).","current","defer","each","em.add_timer(5)","em.cancel_timer(timer)","end","err","go","it.","java","javascript","languag","librari","log.fatal(err)","maximum","mimic","nat","nats()","nats.connect","nats.connect(nats.defaulturl,","nats.connect(options);","nats.timeout(10*time.second))","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(connect_timeout=2)","new","nil","node","on","option","options.","options.builder().","own,","part","pass","prefer","python","requir","rubi","seconds:","server","server(\"nats://demo.nats.io:4222\").","set","someth","support","time","timeout","timeout.","timeout:","timer","typescript","url:","us","way,","{","|nc|","}","});"],"developer/connecting/pingpong.html":["!=","\"demo.nats.io\"","\"got","\"nats://demo.nats.io:4222\"","#","#{nc.connected_server}\"","#{reason}\"","'nats/client'",")","//","//20","20","20)","20*1000,","20*2000,","20s:","5","5)","5,","5:",":=","=",">","[label=\"ping\"];","[label=\"pong\"];","[shape=box,","[shape=circle,","await","back","befor","between","both","build();","cach","call","check","client","client\"];","configur","connect","connect({","connected.","connection.","control","default","defer","digraph","disconnect","disconnected!","doesn't","early.","end","err","example,","except","fail","fast","few","figur","flight","flush","g","get","gnatsd","go","identifi","includ","increas","initi","insur","interact","interaction.","interv","it,","java","javascript","label=\"gnatsd\"];","label=\"nat","limit","log.fatal(err)","long","lot","max","max_outstanding_pings=5,","maximum","maxpingout:","maxpingsout(5).","messag","minutes.","multipl","nats()","nats.connect(\"demo.nats.io\",","nats.connect(options);","nats.connect({","nats.getdefaultoptions()","nats.pinginterval(20*time.second))","nats.start(max_outstanding_pings:","nats.start(ping_interval:","nc","nc,","nc.close()","nc.close();","nc.connect(","nc.on_disconnect","nc.on_reconnect","new","nil","notifi","number","open","opt","option","options.builder().","opts.connect()","opts.maxpingsout","opts.url","order","out","outgo","perhap","ping","ping.","ping/pong","ping/pong.","ping_interval=1,","ping_interval=20,","pinginterval(duration.ofseconds(20)).","pinginterval:","pings,","pong","problem","problem.","processed,","protocol","provid","put","python","quickli","rankdir=lr","reconnect","regular,","request","requir","result","return,","rubi","run","second","server","server(\"nats://demo.nats.io:4222\").","server.","servers=[\"nats://demo.nats.io:4222\"],","set","similar","simpl","small","someth","stale","still","style=\"rounded\",","tell","threads.","throw","time","traffic","traffic,","travel","typescript","url:","us","usual","wait","way","without","worri","{","|nc|","|reason|","}","});"],"developer/connecting/protocol.html":["!=","\"\\r\\n\".","\"demo.nats.io\"","\"got","\"maximum","\"nats://demo.nats.io:4222\"","\"nats://demo.nats.io:4222\",","#","#{nc.connected_server}\"","#{nc.server_info[:max_payload]}","#{reason}\"","%","%d","%v","'error'","'nats/client'","()","(err)","(nc:","*","*must*","+ok","//","1024).","1024*2;","2k","2k:","5)",":=","=","=>","allow","appli","applic","asyncio","await","be","befor","between","body.","build();","bytes\"","bytes\",","can't","carriag","check","chunk","client","client,","client.","client/serv","come","configur","configuration.","connect","connect({","connection.","contain","control","creat","crlf","current","custom","data","default,","defer","disabl","disconnected!","do,","documented.","doesn't","emit","enabl","end","err","err);","err.","error","error:',","event,","example,","except","exit.","extra","fail","fairli","feed,","first","follow","go","handl","happen","important.","intern","java","javascript","length","librari","limit","line","line.","listener.","log.fatal(err)","log.printf(\"maximum","long","made.","match","max","max_payload","maxcontrolline(2","maximum","messag","mode","mode,","mode.","mp","mp)","names,","nat","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect(options);","nats.connect({","nats.getdefaultoptions()","nats.max_control_line_s","nats.start(max_outstanding_pings:","nats.start(pedantic:","nats.start(verbose:","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.connect(servers=[\"nats://demo.nats.io:4222\"],","nc.getmaxpayload();","nc.max_payload)","nc.maxpayload()","nc.on('connect',","nc.on('error',","nc.on_disconnect","nc.on_reconnect","need","new","nil","node","on/off","on:","onc","oper","opt","option","options.builder().","options.max_payload);","options:","opts.connect()","opts.pedant","opts.url","opts.verbos","pass","payload","payload.","pedant","pedantic().","pedantic:","pedantic=true)","ping","play,","pong","pong,","prevent","print(\"maximum","process","protocol","protocol.","provid","put","python","rare","reconnect","regist","reli","repli","requir","return","rubi","send","sent,","server","server(\"nats://demo.nats.io:4222\").","server.","serverinfo)","set","simpl","size","size,","size.","someth","sometim","string,","subject","t.log('client","t.log('max_payload',","t.log(nc.info.max_payload);","tell","testing:","through","throw","time","to',","traffic.","tri","true","true)","ts","turn","typescript","url);","url:","used,","verbos","verbose().","verbose:","verbose=true)","way","{","|nc|","|reason|","}","});"],"developer/connecting/noecho.html":["!=","\",","\"connect","\"nats://demo.nats.io:4222\",","#","#1\";","#2\";","...","//",":=","=",">","[label=\"echo'd","[label=\"msg\"];","[shape=box,","[shape=circle,","`nca'","alreadi","also,","applic","application.","async","asyncio.sleep(1)","await","b'hello","base","build();","cb=handler)","chang","client","cluster_1","cluster_2","code","commun","connect","connect({","connection,","def","default","defer","digraph","each","echo","echo'd","echo,","end","err","fairli","featur","flow","go","handler(msg):","indic","it.","java","javascript","keep","label","label=\"publisher\"];","label=\"subject\"];","label=\"subscriber\"];","log.fatal(err)","major","mean","messag","message.","messages.","mind","msg\",","msg)","nat","nats()","nats.connect(\"demo.nats.io\",","nats.connect(options);","nats.noecho())","nats.start(\"nats://demo.nats.io:4222\",","nc","nc,","nc.close()","nc.close();","nca","nca.connect(no_echo=true)","nca.drain()","nca.flush()","nca.publish(\"greetings\",","nca.subscribe(\"greetings\",","ncb","ncb.connect()","ncb.drain()","ncb.publish(\"greetings\",","new","nil","no_echo","no_echo:","noecho().","noecho:","option","options.builder().","per","print(\"[received]","protocol","publish","python","rankdir=lr;","receiv","received.","result","rubi","same","send","sent","server","server(\"nats://demo.nats.io:4222\").","server,","set","shape=box;","someth","stop","style=\"dashed\"];","style=\"rounded\",","style=\"rounded\";","subgraph","subject","subscrib","subscriber_1","subscriber_2","support","supported.","true)","true});","turn","typescript","url:","why.","won't","world!')","{","|nc|","}"],"developer/reconnect/intro.html":["about,","addresses,","all,","automat","behavior.","check","client","connect","construct","control","dependent,","detail","differ","disconnect","documentation.","due","dure","function","function/opt","gener","general,","help","host","important,","know","librari","library'","library,","list","logic","match.","most,","multipl","names.","network","one,","option","pass","possible,","problem.","provid","recent","reconnect","reconnect,","result,","same","server","server.","sever","sometim","through","time","tri","url","us","usual","without"],"developer/reconnect/disable.html":["!=","\"nats://127.0.0.1:1223\",","\"nats://127.0.0.1:1224\"],","\"nats://demo.nats.io:1222\",","\"nats://demo.nats.io:1223\",","\"nats://demo.nats.io:1224\"","#","'nats/client'",")","//",":=","=","[\"nats://127.0.0.1:1222\",","[\"nats://demo.nats.io:4222\"]","],","allow_reconnect=false,","attempt","automat","await","build();","close","connect","connect({","defer","disabl","end","err","except","fail","false)","false,","go","java","javascript","log.fatal(err)","nats()","nats.connect(\"demo.nats.io\",","nats.connect(options);","nats.connect({","nats.noreconnect())","nats.start(servers:","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(","new","nil","noreconnect().","option","options.builder().","options:","python","reconnect","reconnect:","requir","rubi","server(\"nats://demo.nats.io:4222\").","servers:","servers=[","someth","throw","typescript","{","|nc|","}","});"],"developer/reconnect/max.html":["!=","\"nats://127.0.0.1:1223\",","\"nats://127.0.0.1:1224\"],","#","'nats/client'",")","//","10)","10,","2,","3","6",":=","=","[\"nats://127.0.0.1:1222\",","[\"nats://demo.nats.io:4222\"]","actual","applic","attempt","attempts.","await","befor","build();","check","client","close","closing.","connect","connect({","consid","defer","documentation.","end","err","example,","except","fail","failur","generally,","go","hand,","java","java,","javascript","know","librari","limit","log.fatal(err)","max","max_reconnect_attempts:","max_reconnect_attempts=10,","maximum","maxreconnectattempts:","maxreconnects(10).","nats()","nats.connect(\"demo.nats.io\",","nats.connect(options);","nats.connect({","nats.maxreconnects(10))","nats.start(servers:","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(","new","nil","number","option","options.builder().","python","reconnect","requir","rubi","server","server(\"nats://demo.nats.io:4222\").","servers.","servers:","servers=[\"nats://demo.nats.io:4222\"],","set","someth","throw","total,","tri","twice","typescript","{","|nc|","}","});"],"developer/reconnect/wait.html":["!=","\"nats://127.0.0.1:1223\",","\"nats://127.0.0.1:1224\"],","#","'nats/client'",")","*","//","//10","10","10)","10*1000,","1000,","3","6",":=","=","[\"nats://127.0.0.1:1222\",","[\"nats://demo.nats.io:4222\"]","again,","again.","attempt","attempt,","attempt.","attempts,","await","be","between","build();","client","close","connect","connect({","connectable,","defer","doesnโ€™t","each","end","err","exampl","example,","except","fail","go","hand,","however,","interv","java","javascript","librari","log.fatal(err)","logic","loop","make","much","multipl","nats()","nats.connect(\"demo.nats.io\",","nats.connect(options);","nats.connect({","nats.reconnectwait(10*time.second))","nats.start(servers:","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(","never","new","nil","none","option","options.builder().","over","over.","paus","prevent","previou","provid","python","reconnect","reconnect_time_wait:","reconnect_time_wait=10,","reconnecttimewait:","reconnectwait(duration.ofseconds(10)).","requir","row.","rubi","same","second","sens","server","server(\"nats://demo.nats.io:4222\").","servers.","servers:","servers=[\"nats://demo.nats.io:4222\"],","set","setting.","singl","someth","sort","thrashing,","three","throw","time","tri","typescript","url","wait","wait.","wast","{","|nc|","}","});"],"developer/reconnect/random.html":["!=","\",\"),","\"nats://127.0.0.1:1223\",","\"nats://127.0.0.1:1224\"],","\"nats://demo.nats.io:1222\",","\"nats://demo.nats.io:1223\",","\"nats://demo.nats.io:1224\"","\"nats://demo.nats.io:4222\"","\"nats://localhost:1223\",","\"nats://localhost:1224\",","#","'nats/client'",")","//",":=","=","[\"nats://127.0.0.1:1222\",","[\"nats://127.0.0.1:4443\",","[]string{\"nats://localhost:1222\",","]","],","alway","anti","attack.","attempt","attempts.","avoid","await","bear","brunt","build();","call","case","check","client","close","cluster,","connect","connect({","creat","defer","denial","disabl","dont_randomize=true,","dont_randomize_servers:","down,","effect","end","ensur","err","except","fail","false,","go","goe","herd","however,","immedi","java","javascript","librari","log.fatal(err)","nat","nats()","nats.connect(options);","nats.connect(strings.join(servers,","nats.connect({","nats.dontrandomize())","nats.start(servers:","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(","new","nil","norandomize().","norandomize:","on","option","options.builder().","options:","order","order,","pattern","possibl","prevent","process,","python","random","randomization,","reconnect","requir","rubi","same","server","server(\"nats://demo.nats.io:4222\").","servers:","servers=[","servic","set","shuffl","shuffling,","singl","someth","this,","throw","thunder","to.","tri","true)","typescript","used,","want","{","|nc|","}","});"],"developer/reconnect/events.html":["!=","\"got","\"nats://127.0.0.1:1223\",","\"nats://127.0.0.1:1224\"])","#","#{nc.connected_server}\"","#{reason}\"","'nats/client'","(c)","(conn,","(same","(type",")","*nats.conn)","//","10,",":=","=","==","=>",">","[\"nats://127.0.0.1:1222\",","[\"nats://demo.nats.io:4222\"]","applic","argument","async","asynchron","await","build();","callback","case)","chang","client","connect","connect({","connection.","connectionlistener((conn,","console.log('reconnect","console.log('reconnected');","cover","def","defer","disconnect","disconnected!","disconnected!\")","disconnected,","disconnected_cb():","disconnected_cb=disconnected_cb,","end","err","especi","event","events.","events.disconnected)","events.reconnected)","except","fail","first","go","handl","handler","import","invok","invoked.","java","javascript","librari","listen","log.fatal(err)","lot","mani","maxreconnectattempts:","messages.","nats()","nats.connect(\"demo.nats.io\",","nats.connect(options);","nats.connect({","nats.disconnecthandler(func(nc","nats.reconnecthandler(func(nc","nats.start(servers:","nc","nc,","nc.close()","nc.close();","nc.connect(","nc.on('reconnect',","nc.on_disconnect","nc.on_reconnect","new","nil","notifi","option","options.builder().","primarili","print(\"got","provid","put","python","reconnect","reconnect.","reconnect_time_wait=10,","reconnected_cb():","reconnected_cb=reconnected_cb,","requir","rubi","second","see","send","server","server(\"nats://demo.nats.io:4222\").","server)","server);","servers:","servers=[\"nats://demo.nats.io:4222\"],","someth","state","throw","to',","type)","typescript","under","url","us","wait","{","{url}\".format(url=nc.connected_url.netloc))","|nc|","|reason|","}","}))","}),","}).","});"],"developer/reconnect/buffer.html":["!=","#","(5","*","//","1024","1024).",":=","=","abil","acknowledg","allow","appear","applic","asyncio","attempt","aware,","behav","both.","buffer","build();","byte","bytes,","cach","check","client","client.","configur","connect","current","currentpli","defer","delivery.","differently.","document","document,","down.","dure","each","err","featur","feature,","fire","forget.","go","implement","includ","insur","java","javascript","librari","libraries,","log.fatal(err)","longer","maximum","mb)","mention","messag","much","nat","nats.connect(\"demo.nats.io\",","nats.connect(options);","nats.reconnectbufsize(5*1024*1024))","nc","nc,","nc.close()","nc.close();","never","new","nil","node","offline,","on","option","options.builder().","outgo","part","pattern","pend","pleas","possibl","publish","python","reached,","reconnect","reconnect,","reconnect.","reconnectbuffersize(5","remade.","rubi","send","sent","server","server(\"nats://demo.nats.io:4222\").","set","short","size","slightli","someth","support","that,","those","throughout","tri","ts","typescript","us","using.","{","}"],"developer/security/intro.html":["access","authent","author","between","certificates.","client","combin","configur","connect","control","controlled.","controls,","data","doesn't","encrypt","finally,","first,","form","ident","limit","messages.","method","motion.","nat","over","protect","provid","requir","second,","secur","server","server.","sever","specif","subject","third,","tl","tls.","traffic","turn","us","verifi"],"developer/security/userpass.html":["!=","\"error:","\"got","\"mi","\"myname\",","\"password\"))","\"password\"});","#","#{e}\"","#{nc.connected_server}\"","#{reason}\"","$2a$11$1ojy/wzyntxr9jnwmnws3eughbpht3on8cl9o7ey89mpgo88vg6ba","'nats/client'","//",":=","=",">","`nats://myname:password@127.0.0.1:${port}`;","accept","authent","await","bcrypt","build();","client","code","config.","connect","connect({url:","connection\")","connection.","defer","disconnected!","easi","easili","encrypt","end","err","example,","format","format,","gnatsd","go","hash","hash:","is:","java","javascript","localhost:4222","log","log.fatal(err)","machin","make","mkpasswd.go","mynam","name","name:","nats()","nats.connect(\"localhost\",","nats.connect(\"myname:password@localhost\")","nats.connect(\"nats://myname:password@localhost:4222\");","nats.connect(options);","nats.connect(url);","nats.connect({url:","nats.start(servers:[\"nats://myname:password@127.0.0.1:4222\"],","nats.userinfo(\"myname\",","nats://user:password@server:port","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(servers=[\"nats://myname:password@demo.nats.io:4222\"])","nc.on_disconnect","nc.on_error","nc.on_reconnect","new","nil","option","options.builder().","out.","p","pass","pass:","password","password.","password:","plain","provid","put","python","reconnect","requir","rubi","run","server","server(\"nats://localhost:4222\").","server.","server.nats,","server:","set","simpl","someth","standard","start","still","take","text","tool","tri","typescript","url","url:","url});","us","user","user/password","user:","userinfo(\"myname\",\"password\").","using:","version.","{","|e|","|nc|","|reason|","}"],"developer/security/token.html":["!=","\"connect","\"deadbeef\")","\"mytoken!\"});","\"mytoken\"});","#","//",":=","=",">","`nats://127.0.0.1:${port}`,","`nats://:mytoken!@127.0.0.1:${port}`;","`nats://mytoken!@127.0.0.1:${port}`;","again,","allow","auth","authent","await","basic","build();","client","code","connect","connect({url:","connection.","construct","defer","end","err","example,","form:","gnatsd","go","however,","installations.","java","javascript","larg","librari","localhost:4222","log.fatal(err)","machin","mechan","more","much","mytoken","nats()","nats.connect(\"localhost\",","nats.connect(\"mytoken@localhost\")","nats.connect(\"nats://mytoken@localhost:4222\");//token","nats.connect(options);","nats.connect({url:","nats.start(\"deadbeef@127.0.0.1:4222\")","nats.start(token:","nats.token(\"mytoken\"))","nats://token@server:port","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://mytoken@demo.nats.io:4222\"])","new","nil","normal","onc","option","options.builder().","out.","part","pass","password,","provid","put","python","random","rubi","safe","scheme","secret","secur","server","server(\"nats://localhost:4222\").","server.nats,","set","simpl","situations.","someth","start","strings,","token","token!\"","token\"","token(\"mytoken\").","token:","tri","typescript","url","url.","url});","us","using:","{","|nc|","}"],"developer/security/nkey.html":["!=","(generalsecurityexception|ioexception|nullpointerexcept","//","2.0",":=","=","actual","authent","authentication.","authhandler(){","authhandler(new","base","build();","byte[]","call","catch","challeng","char[]","client","configur","connect","defer","depend","ed25519","err","ex)","getid()","getjwt()","go","handl","insur","introduc","it.","java","key","key,","key.","known","library.","list","load","log.fatal(err)","more","nat","nats.connect(\"localhost\",","nats.connect(options);","nats.nkeyoptionfromseed(\"seed.txt\")","nc","nc,","nc.close()","nc.close();","never","new","nil","nkey","nkey.createuser(null);","nonce)","null;","opt)","opt,","option","option.","options,","options.builder().","privat","protect","public","realli","requir","respond","respons","return","secur","see","server","server(\"nats://localhost:4222\").","set","sever","sign","sign(byte[]","signing.","simplest","someth","somewher","thenkey","thenkey.getpublickey();","thenkey.sign(nonce);","tri","us","version","way","wrapper","{","}","})."],"developer/security/creds.html":["!=","*************************","*************************************************************","//","2.0",":=","=","account:","authent","authentication.","authhandler(nats.credentials(\"path_to_creds_file\")).","base","begin","belong","below","both","build();","client","concept","connect","contain","content","cred","credenti","defer","easier,","end","err","exampl","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijuvlnntettwkjbn01vwdnyquxnuvqztjrisuw1ukzgqu9ynutaufheu0oywlaznkvmnvjbiiwiawf0ijoxntu4mdq1ntyylcjpc3mioijbqlztqk0zvtq1redzrvvfq0tyuvm3qkvosfdhn0tguvveulrfsefkqvnpulbwv0janehpsutdscisim5hbwuioijvbwvnysisinn1yii6ilveweiyvk1mwfbbu0fkn1pevetztle3uu9drldtr0i0rk9nwvfrmjviuvdtquy3wlfkrujtuvnxiiwidhlwzsi6invzzxiilcjuyxrzijp7inb1yii6e30sinn1yii6e319fq.6tq2ilcdb6m2zdijuj_d_oepgxfyn3ap2dem3ipcu5ahrwrnvnejrywrpgi_yuvwko1uod5s8bxlmwypwvgfaa","file","file,","file.","follow","gener","given","go","help","idea","identity.","import","interact","introduc","java","jwt","key","key.","librari","log.fatal(err)","look","make","nat","nats.connect(\"localhost\",","nats.connect(options);","nats.usercredentials(\"path_to_creds_file\"))","nc","nc,","nc.close()","nc.close();","new","nil","nkey","nsc","option","options.builder().","pair.","print","privat","protect","prove","purposes.","scheme","secrets.","seed","sensit","server","server(\"nats://localhost:4222\").","sign","someth","specif","suaoy5jz2wjkvr4uo2kj2p3sw6fzfnweoimaxf4wzeunvqxxuokgm55cy","support","tool.","treat","unus","us","user","version","{","}"],"developer/security/tls.html":["!=","\"#{time.now.to_f","\"#{time.now.to_f}","\"hello\")","\"password\";","\"resources/certs/key.pem\"),","\"src/main/resources/cacerts\";","\"src/main/resources/keystore.jks\";","\"sunx509\";","\"tls://demo.nats.io:4443\"","\"tls://demo.nats.io:4443\",","\"world\")","#","#{e}\"","#{msg}\"","#{nc.connected_server}\"","#{reason}\"","'./spec/configs/certs/key.pem',","'./spec/configs/certs/server.pem'","'nats://demo.nats.io:4443',","'nats://localhost:4222',","'{subject}","(except","(in","//","/applications/python\\","/src/main/resources/tls.conf","/src/main/resources/tls_verify.conf","2","2)","3.7","3.7/install\\",":=",":cert_chain_fil",":connect",":private_key_fil",":server",":tl","=","=>",">","[","[cacert],","[clientcert]","[clientkey],","],","`ssl.create_default_context()`","algorithm","allow","appear","applic","args)","async","asyncio","asyncio.sleep(1,","authent","await","b'!!!!!')","b'hello')","b'world')","between","block.","bufferedinputstream","bufferedinputstream(new","build();","c","ca:","cacert","callback","case","catch","cb=message_handler)","cert.pem',","cert:","certif","certifi","certificate.","certificates.","certificates.command","check","class","client","client,","client.","clientcert","clientkey","clientโ€™","closed\"","configur","connect","connect({","connect,","connection.","connecttl","connecttlsurl","contain","context","coroutine.","covers,","createsslcontext()","createtestkeymanagers()","createtesttrustmanagers()","createtesttrustmanagers(),","ctx","ctx.init(createtestkeymanagers(),","ctx;","custom","data","data=data))","def","default","defer","disabl","disconnected:","e)","e.printstacktrace();","em.add_periodic_timer(0.1)","em.run","em.stop","empti","encrypt","end","environment","err","error:","errors,","errtimeout","exampl","example:","except","exercis","factori","factory.getkeymanagers();","factory.gettrustmanagers();","factory.init(store);","factory.init(store,","fail","fileinputstream(path));","final","find","first:","form","fs.readfilesync(cacertpath);","fs.readfilesync(clientcertpath);","fs.readfilesync(clientkeypath);","get","gnatsd","go","however,","ident","identical.","import","in.close();","java","javascript","key.pem')","key:","key_password","key_password.tochararray());","keyfile='cli","keymanager[]","keymanagerfactori","keymanagerfactory.getinstance(algorithm);","keystor","keystore.getinstance(\"jks\");","keystore_path","librari","limit","loadkeystore(keystore_path);","loadkeystore(str","loadkeystore(truststore_path);","log.fatal(err)","loop=loop)","main(string[]","managers.","manual","messag","message_handler(msg):","messages.","mode,","mode.","moreover,","msg.data.decode()","msg.repli","msg.subject","nat","nats()","nats.aio.cli","nats.aio.error","nats.clientcert(\"resources/certs/cert.pem\",","nats.connect(\"localhost\",","nats.connect(options)","nats.connect(options);","nats.connect({","nats.rootcas(\"resources/certs/ca.pem\"))","nats.secure(),","nc","nc,","nc.auto_unsubscribe(sid,","nc.close()","nc.close();","nc.connect(\"tls://demo.nats.io:4443\",","nc.connect(io_loop=loop,","nc.connect(servers=[\"nats://demo.nats.io:4222\"],","nc.connected?","nc.flush","nc.flush()","nc.on_clos","nc.on_disconnect","nc.on_error","nc.on_reconnect","nc.publish(\"foo\",","nc.publish(\"hello\",","nc.subscribe(\"foo\",","nc.subscribe(\"hello\")","need","new","next","nil","null)","option","options.builder().","order","os","path)","perspect","primarili","print(\"receiv","protocol","public","publish","put","python","readfilesync(cacertpath);","readfilesync(clientcertpath);","readfilesync(clientkeypath);","receiv","received:","reconnect","remov","repli","reply=reply,","repositori","requir","return","rubi","run","run(loop):","same","scheme","secur","securerandom());","self","sent","server","server(\"nats://localhost:4222\").","server(\"tls://localhost:4222\").","serverโ€™","set","sid","side","sign","simpl","someth","ssl","ssl.create_default_context(purpose=ssl.purpose.server_auth)","ssl_ctx","ssl_ctx.load_cert_chain(certfile='cli","ssl_ctx.load_verify_locations('ca.pem')","sslcontext","sslcontext(ctx).","sslcontext.getinstance(options.default_ssl_protocol);","sslcontext.setdefault(sslutils2.createsslcontext());","sslutil","sslutils.createsslcontext();","sslutils2","start","static","stop","store","store.load(in,","store;","store_password","store_password.tochararray());","stores.","string","subject","subject=subject,","subscrib","support","throw","tl","tls,","tls.","tls:","tls=ssl_ctx)","traffic","tri","true","trust","trustmanager[]","trustmanagerfactori","trustmanagerfactory.getinstance(algorithm);","truststore_path","turn","two.","typescript","under","unless","up","url,","url:","us","verif","verifi","version","via","void","well","without","x","{","{data}\".format(","{reply}':","{}","|e|","|msg|","|nc|","|reason|","}","});"],"developer/receiving/intro.html":["apis,","applic","assign","asynchron","cases,","client","connect","copi","covers,","dependent.","done","each","get","go","have","id","id,","interest","involv","java,","languages,","librari","messag","message.","messages.","multipl","nat","on","other","particular","process","provid","receiv","same","send","server","specif","stop","subject,","subject.","subscrib","subscript","subscription.","support","synchron","tell","time","type","under","uniqu","unsubscrib","us","veri"],"developer/receiving/sync.html":["!=","#","%s\",","*","//",":=","=","alway","api","applic","async.","asyncio","client","close","connect","current","deal","defer","depend","do:","easi","easier","err","example,","expected,","expected.","go","java","javascript","language.","log.fatal(err)","log.printf(\"reply:","loop","manage,","messag","messages.","msg","msg,","msg.data)","multipl","nat","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nc","nc,","nc.close()","nc.close();","nc.subscribe(\"updates\");","nc.subscribesync(\"updates\")","new","nil","node","poll","python","read","receiv","requir","respons","rubi","set","singl","situat","sometim","standardcharsets.utf_8);","str","string","string(msg.getdata(),","sub","sub,","sub.nextmessage(duration.zero);","sub.nextmsg(10","subject","subscrib","subscript","sync","synchron","system.out.println(str);","time.second)","ts","type","typescript","up","updat","us","use,","wait","{","}"],"developer/receiving/async.html":["!=","\"all","#","'nats/client'","(err,","(msg)","*nats.msg)","//","1)",":=","=","=>",">","_,","applic","arriv","arrives.","associ","async","asynchron","asyncio.future()","asyncio.wait_for(future,","await","b'all","callback","cb(msg):","cb=cb)","check","close","come","connect","console.log('error',","countdownlatch","countdownlatch(1);","creat","d","d.subscribe(\"updates\");","def","defer","dispatch","document","easier","end","err","err);","exampl","follow","form","func(m","futur","future.set_result(msg)","go","handl","handler","i.e.","if(err)","incom","inlin","intern","java","javascript","latch","latch.await();","latch.countdown();","library'","library.","log.fatal(err)","messag","messages:","msg","msg)","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.createdispatcher((msg)","nc.flush()","nc.publish(\"updates\",","nc.subscribe(\"updates\")","nc.subscribe(\"updates\",","new","nil","nonloc","notifi","put","python","repres","requir","resourc","rubi","standardcharsets.utf_8);","str","string","string(msg.getdata(),","subject","subscrib","subscript","subscriptions.","sync.waitgroup{}","system.out.println(str);","t.log(msg);","t.log(msg.data);","threads,","typescript","updat","us","usag","usage,","usual","wait","waitgroup","well\")","well')","wg","wg.add(1)","wg.done()","wg.wait()","with,","work","{","|msg|","|nc|","}","});"],"developer/receiving/unsubscribing.html":["!=","\"reply:","#","#{msg}\"","'fiber'","'nats/client'","'what","(err,","(msg,","(msg.reply)","*nats.msg)","//",":=","=","=>",">","argument","async","asynchron","asyncio.future()","await","b'...')","b'all","cancel","case,","cb(msg):","cb=cb)","clean","client","close","come","connect","d","d.subscribe(\"updates\");","d.unsubscribe(\"updates\");","date().tolocaletimestring());","def","defer","dispatch","edg","end","end.resum","err","expect","f","f.resum","fiber.curr","fiber.new","fiber.yield","func(_","futur","future.set_result(msg)","go","ignor","interact","interest","java","javascript","librari","library.","log.fatal(err)","longer","mani","mean","messag","msg","msg)","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.create_inbox)","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.createdispatcher((msg)","nc.publish(\"time\",","nc.publish(\"updates\",","nc.publish(msg.reply,","nc.publish(reply,","nc.subscribe(\"time\")","nc.subscribe(\"updates\");","nc.subscribe(\"updates\",","nc.subscribe(createinbox(),","nc.subscribe(nats.createinbox(),","nc.subscribesync(\"updates\")","nc.unsubscribe(sid)","nc.unsubscribe(sub);","new","nil","nonloc","outstand","previou","process","provid","put","python","receiv","received...","remov","repli","reply)","reply|","request","request.","requir","respons","rubi","server","server,","set","set.');","sid","slight","small","specifi","standardcharsets.utf_8);","str","string","string(msg.getdata(),","sub","sub,","sub.unsubscribe();","subject","subscript","sync","system.out.println(str);","t.log('got","tell","through","time","time,","time.now","time?',","typescript","unsubscrib","up","us","used.","well')","window","without","won't","{","{})","|msg,","|nc|","}","});"],"developer/receiving/unsub_after.html":["!=","\"reply:","#","#{msg}\"","'fiber'","'nats/client'","'what","(err,","(msg)","*nats.msg)","//","1)","1);","1,","10","10);","10};",":=","=","=>",">","`max`","action","allow","alreadi","anoth","applic","async","auto","await","b'...')","b'all","base","befor","behavior.","between","cancel.","case","cb(msg):","cb=cb)","client","close","cluster","configur","confus","connect","count","count.","d","d.subscribe(\"updates\");","d.unsubscribe(\"updates\",","danc","def","defer","disconnect","dispatch","due","edg","effect","end","end.resum","err","even","exampl","expected.","f","f.resum","failur","fiber.curr","fiber.new","fiber.yield","finally,","flow","follow","form","forward.","func(_","go","handler","histori","immediate.","it.","java","javascript","librari","library.","log.fatal(err)","logic","long","mani","max","max:","mean","mechan","messag","message.","message:","messages,","miscount","more","msg","msg)","n","nat","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.create_inbox)","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.auto_unsubscribe(sid,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.createdispatcher((msg)","nc.publish(\"time\",","nc.publish(\"updates\",","nc.subscribe(\"time\",","nc.subscribe(\"updates\");","nc.subscribe(\"updates\",","nc.subscribe(createinbox(),","nc.subscribe(nats.createinbox(),","nc.subscribesync(\"updates\")","nc.unsubscribe(sub2,","new","nil","notif","number","on","one.","ones.","opt","opts);","opts,","previou","print(msg)","provid","put","python","reached,","receiv","received...","reconnect","remain","reply|","request","request.","requir","respons","result","rubi","run","send","sent","server","show","sid","singl","special","specifi","standardcharsets.utf_8);","stop","str","string","string(msg.getdata(),","sub","sub,","sub.autounsubscribe(1);","sub.unsubscribe(1);","sub2","sub2.unsubscribe(10);","subscrib","subscriber,","subscriber.","subscript","subscription,","sync","system.out.println(str);","t.log(msg);","t.log(msg.data);","take","tell","time.now","time?',","total","track","tri","tricki","typescript","unplan","unsubscrib","us","used.","veri","way","well')","won't","{","{max:","{})","|msg,","|nc|","}","});","},"],"developer/receiving/reply.html":["!=","\"reply:","\"{}\".format(datetime.now()).encode()","#","#{msg}\"","'fiber'","'nats/client'","'what","(err,","(msg,","(msg.reply)","*","//","1)",":=","=","=>","[]byte(time.now().string())","async","asyncio.future()","asyncio.wait_for(future,","await","b'what","byte[]","cal","calendar","calendar.getinstance();","cb(msg):","cb=cb)","close","code","connect","contain","date().tolocaletimestring());","def","defer","end","end.resum","err","example,","expected.","f","f.resum","fiber.curr","fiber.new","fiber.yield","field","field.","flush","follow","futur","future.set_result(msg)","go","incom","java","javascript","listen","log.fatal(err)","messag","msg","msg)","msg,","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.create_inbox)","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.flush()","nc.flush(duration.zero);","nc.publish(\"time\",","nc.publish(msg.getreplyto(),","nc.publish(msg.reply,","nc.publish_request(\"time\",","nc.subscribe(\"time\")","nc.subscribe(\"time\");","nc.subscribe(\"time\",","nc.subscribe('time',","nc.subscribesync(\"time\")","new","new_inbox(),","nil","nonloc","option","process","put","python","read","repli","reply)","reply|","request","requir","respond","respons","rubi","sdf","sdf.format(cal.gettime()).getbytes(standardcharsets.utf_8);","send","set","set,","set.');","simpledateformat","simpledateformat(\"hh:mm:ss\");","sub","sub,","sub.nextmessage(duration.zero);","sub.nextmsg(10","subject","subscrib","subscript","t.log('got","time","time,","time.","time.now","time.second)","time?')","time?',","time_as_byt","time_as_bytes)","timeasbyt","timeasbytes)","timeasbytes);","typescript","up","us","{","|msg,","|nc|","}","});"],"developer/receiving/wildcards.html":["!=","\"","\"\";","\":","\"a\")","\"america/chicago\"});","\"america/denver\"});","\"america/los_angeles\"});","\"america/new_york\"});","\"b\")","\"c\")","\"d\")","\"i","\"msg","\"msg:","#","#{msg_a}\"","#{msg_b}\"","#{msg}\"","%s\",","'...')","'fiber'","'nats/client'","'time.us.central':","'time.us.east':","'time.us.mountain':","'time.us.west':","(err,","(msg,","(msg.subject)","(subject)","*","*many*","*nats.msg)","+","//","2","4","4):","4.","4.time",":=","=","=>",">",">:","[]byte(formatted))","_,","a:","a:\",","account","act","actual","arriv","async","asyncio.queue()","await","b'...')","b'a')","b'b')","b'c')","b'd')","b:","b:\",","base","break;","case","cb(msg):","cb=cb)","close","code","come","common","connect","console.log(msg.subject,","convert","correctli","countdownlatch","countdownlatch(2);","countdownlatch(4);","creat","d","d.subscribe(\"time.*.east\");","d.subscribe(\"time.>\");","date().tolocaletimestring(\"en","def","default:","defer","determin","dispatch","doesn't","don't","end","end.resum","err","exampl","example,","f","f.resum","fiber.curr","fiber.new","fiber.yield","follow","format","formatted.getbytes(standardcharsets.utf_8));","func(m","go","handler","however,","importantli","incom","inlin","java","javascript","know","latch","latch.await();","latch.countdown();","librari","log.fatal(err)","log.printf(\"%s:","m.data)","m.subject,","match.","messag","message.","messages,","more","msg","msg)","msg.getsubject();","msg_a","msg_a)","msg_b","msg_b)","name.","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.start","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.createdispatcher((msg)","nc.drain","nc.flush(duration.zero);","nc.publish(\"time.a.east\",","nc.publish(\"time.b.east\",","nc.publish(\"time.c.west\",","nc.publish(\"time.d.west\",","nc.publish(\"time.eu.east\",","nc.publish(\"time.eu.east.warsaw\",","nc.publish(\"time.us.east\",","nc.publish(\"time.us.east.atlanta\",","nc.publish('time.us.central');","nc.publish('time.us.east');","nc.publish('time.us.mountain');","nc.publish('time.us.west');","nc.subscribe(\"time.*.east\")","nc.subscribe(\"time.*.east\",","nc.subscribe(\"time.>\")","nc.subscribe(\"time.>\",","nc.subscribe('time.>',","nc.subscribe('time.us.*',","new","nil","node","normal","now","now.in(zoneid)","part","play","print(\"msg","print(\"msg:\",","provid","put","python","queue","queue.get()","queue.put(msg)","queue.put_nowait(msg)","range(0,","receiv","reply,","reply|","requir","respons","rubi","send","similar","someth","special","standardcharsets.utf_8);","str","str);","string","string(msg.getdata(),","subject","subject)","subject.","subscrib","subscribers.","subscript","switch","sync.waitgroup{}","system.out.println(subject","t.log(msg.subject,","t.log(subject,","take","talk","techniqu","test","things.","time","time);","time.*.east","time.loadlocation(\"america/new_york\")","time.loadlocation(\"europe/warsaw\")","time.now","time.now()","time.now.to_f","time.us.east.atlanta","timezon","two","typescript","us","us\",","wait","waitgroup","wg","wg.add(2)","wg.add(4)","wg.done()","wg.wait()","wildcard","wildcards.","willis\";","won't","zonedatetim","zonedatetime.string()","zoneddatetim","zoneddatetime.format(datetimeformatter.iso_zoned_date_time);","zoneddatetime.ofinstant(instant.now(),","zoneid","zoneid);","zoneid,","zoneid.of(\"america/new_york\");","zoneid.of(\"europe/warsaw\");","{","{timezone:","|msg,","|nc|","}","});"],"developer/receiving/queues.html":["!=","\"a\")","\"msg:","\"updates\"","\"worker\")","\"worker\",","\"workers\"","\"workers\");","\"workers\"});","\"workers\"},","#","#{msg}\"","'fiber'","'nats/client'","(err,","(msg)","*nats.msg)","//","1\"];","1)","1,","1,2,3\"];","10","2\"];","3\"];",":=","=","=>",">","[label=\"msg","[shape=box,","[shape=circle,","_,","alone.","applic","arriv","async","asyncio.future()","asyncio.wait_for(future,","await","b'all","balanc","between","cb(msg):","cb=cb)","change.","close","code","come","configuration.","connect","countdownlatch","countdownlatch(10);","creat","d","d.subscribe(\"updates\",","def","defer","differ","digraph","dispatch","dynam","effect","end","end.resum","err","exampl","example,","f","f.resum","fairli","fiber.curr","fiber.new","fiber.yield","func(m","futur","future.set_result(msg)","g","get","go","group","group,","handler","includ","inlin","instanc","java","javascript","keep","label=\"gnatsd\"];","label=\"pub","label=\"sub","latch","latch.await();","latch.countdown();","load","log.fatal(err)","major,","member","messag","message',","mind","minimal.","msg","msg)","msg);","msg.data);","much","name","nat","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.createdispatcher((msg)","nc.publish(\"updates\",","nc.queuesubscribe(\"updates\",","nc.subscribe(\"updates\",","nc.subscribe('updates',","new","nil","nonloc","now","on","other","print(\"msg\",","probabl","publish","put","python","queue","queue:","queue=\"workers\",","rankdir=lr","receiv","regular","reply|","requir","respons","rubi","run","see","send","server","simpli","slightli","standardcharsets.utf_8);","str","string","string(msg.getdata(),","style=\"rounded\",","sub1","sub2","sub3","subject","subscrib","subscript","subscription.","sync.waitgroup{}","system.out.println(str);","t.log('work","that.","think","time.now","typescript","updat","updates\"];","updates,","updates:","us","wait","waitgroup","well')","wg","wg.add(10)","wg.done()","wg.wait()","won't.","worker","workers\"];","worth","{","{queue:","|msg,","|nc|","}","});","},"],"developer/receiving/drain.html":["!=","\",","\"ack:#{msg}\")","\"done","\"not","\"workers\")","\"workers\",","\"workers\"});","#","(err,","*nats.conn,","*nats.msg)","*nats.subscription,","//","0","1)","10):",":=","=","==","=>",">","[]","[end","_","abil","ad","api","applic","arriv","async","asynchron","asyncio","asyncio.gather(*requests)","await","b'help!',","b'i","be","befor","both.","bring","cach","cached/pend","callback","callback,","cb=handler)","check","clean","client","client.","close","closed.\"","closing.","come","complet","completablefutur","connect","connection,","connection.","connection:","consid","count","countdownlatch","countdownlatch(1);","creat","current","d","d.drain(duration.ofseconds(10));","d.subscribe(\"updates\");","def","defer","disconnect","dispatch","done","done.add(1)","down","drain","drain,","drain_sub]","drained.get();","draining\")","draining.","draintimeout()","due","each","em.add_timer(2)","end","err","errch","error)","error,","essentially:","exampl","example(loop):","featur","flow","flush","func(m","gener","go","gracefulli","halt","handler","handler(msg):","help')","higher","immedi","import","inlin","instead","involv","java","javascript","known","latch","latch.await();","latch.countdown();","less","librari","log.fatal(err)","loop=loop)","lose","lost","make(chan","mechan","member,","messag","message',","messages.","msg)","msg.data);","msgafterdrain","nat","nats()","nats.aio.cli","nats.connect(\"demo.nats.io\")","nats.connect(\"demo.nats.io\",","nats.connect(\"nats://demo.nats.io:4222\");","nats.drain","nats.draining?","nats.draintimeout(10*time.millisecond).","nats.draintimeout(10*time.second),","nats.errorhandler(func(_","nats.start(drain_timeout:","nats.subscribe('bar',","nats.subscribe('foo',","nats.subscribe('quux',","nc","nc,","nc.close()","nc.close();","nc.connect(\"nats://127.0.0.1:4222\",","nc.createdispatcher((msg)","nc.drain()","nc.drain();","nc.drain(duration.ofseconds(10));","nc.drain(sid)","nc.flush()","nc.flush();","nc.is_draining:","nc.publish(msg.reply,","nc.publish(reply,","nc.request(\"help\",","nc.subscribe(\"help\",","nc.subscribe(\"updates\",","nc.subscribe('updates',","new","next","nil","old","one\"","pend","possibl","print(\"[received]","print(\"connect","print(\"receiv","process","processing,","provid","publish","put","python","queue","queue:","range(0,","remain","reply,","request","request/repli","requests.","requests.append(request)","resolv","respons","responses\".format(len(responses)))","rubi","say:","sent","server","server,","set","shut","sid","similar.","simpl","simpler:","simul","singl","slowli","spent","standardcharsets.utf_8);","state","stop","str","string","string(m.data)","string(msg.getdata(),","sub","sub,","subscrib","subscriber,","subscribers.","subscript","subscription,","subscriptions.","sub|","supported.","sync.waitgroup{}","system.out.println(str);","t.log('work","though","time","timeout","timeout,","timeout=1)","timing.","typescript","unsubscrib","unsubscribe:","up","us","valu","via","wait","way","wg","wg.add(1)","whether","whole","without","{","{queue:","{}","|msg,","|nc|","}","});","},"],"developer/receiving/structure.html":["!=","\"","\"goog\",","\"nats://demo.nats.io:4222\",","\"no","\"price\":","\"price\"=>12}","#","%s","%v\",","&&","'json'","'nats/client'","'tsla')","(err,","(except","(msg)","*stock)","+","//","10","1200","2)",":",":=","=","===","=>",">","?","_,","alway","args)","arrays.","arriv","associ","async","asyncio","asyncio.sleep(1,","await","befor","byte","catch","cb=message_handler)","class","client","client.","close","come","connect","connect({","core","countdownlatch","countdownlatch(10);","creat","d","d.subscribe(\"updates\");","data","data,","decod","def","defer","defin","dispatch","do:","don't","e)","e.printstacktrace();","ec,","ec.close()","ec.subscribe(\"updates\",","encod","end","err","errtimeout","example,","float","func(","go","gson","gson();","gson.fromjson(json,","handler","help","helpers,","if(msg","import","inlin","int","java","javascript","json","json.","json.dumps({\"symbol\":","json.loads(msg.data.decode())","json.parse(msg)","json:","latch","latch.await();","latch.countdown();","librari","log.fatal(err)","log.printf(\"stock:","loop=loop)","m","main(string[]","messag","message:',","message_handler(msg):","msg)","msg);","msg.data","msg.ticker","nat","nats()","nats.aio.cli","nats.aio.error","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect({","nats.json_encoder)","nats.newencodedconn(nc,","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.auto_unsubscribe(sid,","nc.close()","nc.close();","nc.connect(servers=[\"nats://127.0.0.1:4222\"],","nc.createdispatcher((msg)","nc.flush()","nc.publish(\"updates\",","nc.subscribe(\"updates\")","nc.subscribe(\"updates\",","nc.subscribe('updates',","new","nil","object","p","payload\");","payload.json","payload:","price","price:","price;","print(data)","provid","public","python","receiv","requir","return","rubi","run(loop):","s.price)","s.symbol,","send","server","sid","standardcharsets.utf_8);","static","stk","stock","stockforjsonsub","stockforjsonsub.class);","string","string(msg.getdata(),","struct","structur","subscrib","subscribejson","symbol","symbol;","sync.waitgroup{}","system.out.println(stk);","t.log('got","tool","tostring()","traffic","tri","true","type","typescript","url:","us","void","wait","wg","wg.add(1)","wg.done()","wg.wait()","{","{\"symbol\"=>\"goog\",","|msg|","|nc|","}","}).encode())","});"],"developer/sending/intro.html":["!=","\"all","\"nats://demo.nats.io:4222\",","'nats/client'","//","8",":=","=","[]byte(\"al","array","arrays.","await","b'all","befor","buf","buf);","buf.fill(\"al","buffer.allocunsafe(12);","byte","bytes,","bytes.","client","close","connect","connect({","convert","data","defer","design","do:","end","err","example,","format","go","goe","helper","includ","java","javascript","librari","log.fatal(err)","make","messag","nat","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect({url:","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.flush()","nc.flush(duration.zero);","nc.publish(\"updates\",","nc.publish('updates',","nil","opaqu","option","payload.binari","payload:","preservebuffers:","protocol","provid","python","receiv","repli","requir","rubi","send","server","simple.","string","subject","subject,","sure","target","through","treat","true});","typescript","url:","us","utf","well\")","well\"));","well\");","well\".getbytes(standardcharsets.utf_8));","well')","wellโ€","{","|nc|","}","});","โ€œall","โ€œupdatesโ€"],"developer/sending/replyto.html":["!=","\"\",","\"reply:","#","#{msg}\"","%s\",","'example',","'fiber'","'nats/client'","(err)","(err,","(msg)","(msg,","(msg.reply)","//","1)","1});","1},",":=","=","=>","async","asyncio.future()","asyncio.wait_for(future,","await","b'')","call","cb=sub)","close","connect","content","creat","createinbox();","date().tolocaletimestring());","def","defer","end","end.resum","err","exampl","f","f.resum","fiber.curr","fiber.new","fiber.yield","field","futur","future.set_result(msg)","gener","go","if(reply)","inbox","inbox);","inbox,","includ","insid","is',","java","javascript","librari","listen","log.fatal(err)","log.printf(\"reply:","messag","messages,","method","might:","msg","msg)","msg);","msg,","msg.data)","msg.data);","name","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.create_inbox)","nats.createinbox();","nats.newinbox()","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.publish(\"time\",","nc.publish('time',","nc.publish(msg.reply,","nc.publish(reply,","nc.publish_request(\"time\",","nc.publishrequest(\"time\",","nc.subscribe(\"time\")","nc.subscribe(\"time\",","nc.subscribe('time',","nc.subscribe(inbox,","nc.subscribe(uniquereplyto);","nc.subscribesync(uniquereplyto)","new","new_inbox()","nil","nil);","nonloc","nuid.nextglobal();","null);","option","print(\"reply:\",","process","promis","provid","publish","put","python","read","receiv","reject();","repli","reply)","reply|","request","requir","resolve();","respond","respond.","respons","return;","rubi","run","send","set","side","singl","standardcharsets.utf_8));","string","string(msg.getdata(),","sub","sub(msg):","sub,","sub.nextmessage(duration.ofseconds(1));","sub.nextmsg(time.second)","sub.unsubscribe(1);","subject","subjects.","subscript","system.out.println(new","t.log('th","time","time,","typescript","uniqu","unique_reply_to","unique_reply_to,","uniquereplyto","uniquereplyto,","up","us","{","{max:","|msg,","|nc|","}","});","},"],"developer/sending/request_reply.html":["!=","\"\")","\"reply:","\"response\")","#","#{msg}\"","%s\",","'fiber'","'nats/client'","(msg)","*","//","100","1000);","500",":=","=","=>","[]byte(input))","accept","action.","async","asyncio.timeouterror:","await","b'',","b'response')","befor","between","break","call","cb=sub)","child","client","close","complet","connect","counter","cover","creat","def","defer","differ","duration.ofseconds(1));","each","encapsul","end","end.resum","err","even","exampl","example,","except","expand","fiber.new","following,","gather","gather.","get","go","hierarchi","is',","java","javascript","librari","like:","limitation,","listen","log.fatal(err)","log.printf(\"reply:","look","loop","max","messag","message,","message:","messages,","method","method.","minrespons","msg","msg)","msg);","msg,","msg.data)","msg.data);","multipl","n","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.flush()","nc.publish(msg.reply,","nc.publish(reply,","nc.publishrequest(subject,","nc.request(\"time\",","nc.request('time',","nc.requestone('time',","nc.subscribe(\"time\")","nc.subscribe(\"time\",","nc.subscribesync(replyto)","new","newer","nil","nil,","null,","older","on","or,","out","pattern","pattern.","previou","primari","print(\"reply:\",","print(\"tim","provid","publish","put","python","receipt","receiv","repli","replyto,","reply|","request","requir","respons","response\")","response,","responses:","returning.","rubi","scatter","second","semant","send","sent","set","singl","someth","standardcharsets.utf_8));","start","string(msg.data)","string(msg.getdata(),","sub(msg):","sub,","sub.nextmsg(1","sub.unsubscribe()","subject","subject.","subscrib","subscribe,","synchron","system.out.println(new","t.log('th","think","time","time.","time.millisecond","time.now()","time.now().sub(start)","time.second)","timeout","timeout,","timeout.","timeout:","timeout=1)","treat","tri","try:","typescript","under","uniqu","unsubscrib","updat","us","version","versions,","wait","way","wildcard,","{","|msg,","|nc|","}","});"],"developer/sending/caches.html":["!=","\"all","\"hit","\"nats://demo.nats.io:4222\"","\"nats://demo.nats.io:4222\"});","#","'fiber'","'ms');","'nats/client'","//",":=","=","=>","[]byte(\"al","abov","all,","anoth","applic","await","b'all","be","befor","bigger","buffer","built","byte","cach","caches,","call","case,","chunk","client","complet","connect","connect({","data","date.now()","date.now();","defer","design","end","err","few","finish","flow","flush","forever,","function","gener","give","given","go","good","guarante","high","hold","in',","insur","interact","java","javascript","job","know","latenc","librari","log.fatal(err)","low","make","mani","manner.","messag","message.","messages,","move","msg","nat","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect({url:","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.flush","nc.flush(()","nc.flush();","nc.flush(duration.ofseconds(1));","nc.flush(timeout=1)","nc.flushtimeout(time.second);","nc.publish(\"updates\",","nc.publish('foo');","nc.subscribe(\"updates\")","need","network","network.","nil","on","onc","option","outgo","perform","ping","ping/pong","point.","pong","process","promis","protocol","provid","push","put","python","queue","reasons,","requir","resolv","round","rubi","say","scenarios,","send","server","server,","server.","simpl","simpli","situations.","start","start,","still","store","successful.","sure","system.","t.log('round","tell","through","throughput","time","time.","timeout.","trigger","trip","typescript","up","url:","us","wait","way,","well\")","well\"));","well\".getbytes(standardcharsets.utf_8));","well')","wire.\"","written","{","|msg|","|nc|","}","});"],"developer/sending/structure.html":["!=","\"goog\",","\"nats://demo.nats.io:4222\",","\"price\":","&stock{symbol:","'goog',","'json'","'nats/client'","(except","//","1200","1200});","1200}.to_json)","8,",":=","=","alter","applic","args)","array","await","befor","buffer,","builder","builder.create();","byte","bytes.","catch","class","client","close","connect","connect({","creat","data","decod","defer","defin","depend","e)","e.printstacktrace();","each","easili","ec,","ec.close()","ec.flush()","ec.publish(\"updates\",","encod","encoding.","end","err","exampl","float","follow","format","format.","go","goe","gson","gson.tojson(stk);","gsonbuild","gsonbuilder();","helper","int","java","javascript","json","json.dumps({\"symbol\":","json.getbytes(standardcharsets.utf_8));","json:","languag","librari","log.fatal(err)","main(string[]","make","messag","nats()","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect({url:","nats.json_encoder)","nats.newencodedconn(nc,","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nc","nc,","nc.close()","nc.close();","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.flush(duration.zero);","nc.publish(\"updates\",","nc.publish('updates',","new","nil","object","other","payload.json","payload:","perform","price","price:","price;","protocol","provid","public","publish","publishjson","python","requir","rubi","send","sending.","show","simpl","standard","static","stk","stk.price=1200;","stk.symbol=\"goog\";","stock","stock:","stockforjsonpub","stockforjsonpub();","string","struct","structur","sure","symbol","symbol;","take","text","through","ticker","tri","true});","type","typescript","url:","us","utf","void","yaml","{","{\"symbol\":","{ticker:","|nc|","}","}).encode())","});"],"developer/events/intro.html":["!=","\"","\"closed\"","\"connect","\"connected\"","\"other\"","\"reconnect","#","#{nc.connected?}\"","%v\\n\",","'error'","(err)",")","*must*","*nats.conn)","+","//","2)",":=","=","=>","asyncio.sleep(1)","await","break","case","client","closed');","closed...\"","closed?\",","connect","connected?\",","connected?:","connection'","connection.","covers.","current","default:","defer","em.add_periodic_timer(1)","em.cancel_timer(timer)","emit","end","err","err);","error","error:',","event,","example,","exit.","func(nc","getstatustxt","getstatustxt(nc))","go","happen","if(nc.closed)","if(nc.isclosed())","insight","interact","is:","java","javascript","job","librari","listener.","log.fatal(err)","log.printf(\"th","manag","mechan","monitor","nats()","nats...\"","nats...\")","nats.closed:","nats.connect(\"demo.nats.io\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.connected:","nats.start(max_reconnect_attempts:","nats.stop","nc","nc,","nc.close()","nc.close();","nc.closing?","nc.connect(","nc.getstatus());","nc.is_closed)","nc.is_connected)","nc.is_reconnecting:","nc.on('error',","nc.reconnecting?","nc.status()","next","nil","node","primarili","print(\"reconnect","print(\"th","process","provid","put","python","regist","return","rubi","running');","server","servers=[\"nats://demo.nats.io:4222\"],","someth","status:","string","switch","system.out.println(\"th","t.log('client","t.log('th","timer","true:","typescript","under","{","|nc|","}","});"],"developer/events/events.html":["!=","\"+error);","\"+event);","\"+exp.getlocalizedmessage());","\"+server);","\",","\"error:","#","#{e}\"","%v\",","%v\\n\",","',ce.added,","'added:","'error'","'nats/client'","'removed:',","()","(ce)","(err)","(event","(except","(nc)","(nc,","(string","(url)","(urls)",")","*must*","*nats.conn)","*nats.conn,","*nats.subscription,","//",":",":=","=","==","=>","actual","ad","all,","allow","api","applic","args)","async","asynchron","asyncio","await","band","be","build();","callback","cases.","catch","ce.removed);","changed.","changed\\n',","changes.","class","client","client.","closed\")","closed');","closed,","closed.","closed_cb","closed_cb():","closedhandler(cb","cluster,","cluster.","code","common","conn,","connect","connect,","connected');","connection.","connectionevent(connect","connectionlisten","connectionlistener(new","connhandler)","consum","consumer)","debug","def","defer","defin","depend","dependent,","detected.\");","disconnect","disconnected!\")","disconnected');","disconnected_cb","disconnected_cb():","disconnecthandler(cb","discov","discovered.","discoveredservershandler(cb","document","e)","e.printstacktrace();","emit","end","err","err)","err);","errhandler)","error","error)","error:","error:',","error_cb","error_cb(e):","error_cb=error_cb,","errorhandler(cb","errorlisten","errorlistener(new","erroroccurred(connect","event","event)","event,","events.","events.discovered_servers)","exampl","except","exception:","exceptionoccurred(connect","exit.","exp)","few","find","first","follow","from',","go","handl","handler","happen","implement","includ","individu","instead,","instructions.","interest","interesting,","invok","involv","java","javascript","join","know","known","languag","librari","listen","listener.","listenfornewserv","log.fatal(err)","log.printf(\"discov","log.printf(\"error:","log.printf(\"known","main(string[]","mani","more","most,","multipl","myconnectionlisten","myconnectionlistener()).","myerrorlisten","myerrorlistener()).","nat","nats()","nats.connect(\"demo.nats.io\",","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect(options);","nats.discoveredservershandler(func(nc","nats.errorhandler(func(nc","nats.on_clos","nats.on_disconnect","nats.on_error","nats.on_reconnect","nats.start(servers:[\"nats://demo.nats.io:4222\"])","natsconnection,","nc","nc,","nc.close","nc.close()","nc.close();","nc.connect(","nc.connect(**options)","nc.discoveredservers())","nc.getservers())","nc.on('close',","nc.on('connect',","nc.on('disconnect',","nc.on('error',","nc.on('permission_error',","nc.on('reconnect',","nc.on('reconnecting',","nc.on('serverschanged',","nc.on('serversdiscovered',","nc.on_error","nc.servers())","new","nil","node","notif","notifi","notification:","now","number","occurs.","on","onc","option","options.builder().","options[\"closed_cb\"]","options[\"disconnected_cb\"]","options[\"error_cb\"]","options[\"reconnected_cb\"]","out","perhap","print","print(\"connect","print(\"error:","print(\"got","print(\"ther","problems.","process","provid","public","put","python","rebooted.","reconnect","reconnect.","reconnect_time_wait=10,","reconnected');","reconnected.","reconnected_cb","reconnected_cb():","reconnecthandler(cb","reconnecting');","regist","relat","requir","result","right","rubi","see","separ","server","server(\"nats://demo.nats.io:4222\").","server,","server:","servers:","servers=[\"nats://demo.nats.io:4222\"],","serversaddedlisten","serversaddedlistener()).","set","setconnectionlisten","seterrorlisten","setup","show","singl","slow","slowconsumerdetected(connect","someth","specif","static","statu","status.","string","sub","support","system.out.println(\"a","system.out.println(\"connect","system.out.println(\"known","system.out.println(\"th","t.log('client","t.log('disconnect","t.log('error',","t.log('permission_error',","t.log('reconnect","t.log('serv","t.log('serversdiscovered',","to',","tri","typescript","url)","url);","urls);","us","using:","veri","void","way","with:","work","{","{url}\".format(url=nc.connected_url.netloc))","{}\".format(e))","|e|","|nc|","}","}))","});"],"developer/events/slow.html":["!=","\"+","\"msg","#","#{}\".format(i).encode())","%d","%s","(except",")","*","*nats.conn,","*nats.msg)","*nats.subscription,","//","0","1)","1,","1,000","10","10):","1000","1024","1024);","20","3:","5","5*1024*1024)","5mb","5mb,",":=","=","==",">","[]","_","again,","although","appear","applic","application.","args)","async","asynchron","asyncio.future()","asyncio.sleep(0)","asyncio.sleep(1)","asyncio.timeouterror:","asyncio.wait_for(future,","await","behind.","big,","bit","block","build();","bursti","byte","cach","call","callback","callback.","catch","caus","cb(msg):","cb=cb,","chang","check","class","client","close","come","common","configur","conn,","connect","consid","consum","consumer)","consumer.getdroppedcount());","consumers.","continu","control","count","count.","creat","current","custom","cut","d","d.setpendinglimits(1_000,","d.subscribe(\"updates\");","danger","deal","decid","def","default","defer","depend","design","detect","disabl","dispatch","document","drop","dropped)","dropped,","e)","e.printstacktrace();","err","error","error)","error,","error_cb(e):","error_cb=error_cb,","errorlisten","errorlistener(new","erroroccurred(connect","eventu","example,","except","exceptionoccurred(connect","exp)","extra","find","first","first:","func(m","further","futur","future.set_result(msg)","get","give","go","handl","head","healthy,","healthy.","help","hold","imped","implement","incom","incoming/pend","invok","involv","java","java,","javascript","keep","len(msgs)","librari","libraries,","library.","limit","limits.","line","listen","log.fatal(err)","log.printf(\"slow","long...","main(string[]","matching,","messag","messages.","messages...\")","messages:","messages\\n\",","mismatch.","move","msg","msg)","msgs.append(msg)","msgs:","multipl","nat","nats()","nats.aio.errors.errslowconsumer:","nats.connect(\"demo.nats.io\")","nats.connect(\"demo.nats.io\",","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect(options);","nats.errorhandler(func(nc","nats.errslowconsum","nc","nc,","nc.close()","nc.close();","nc.connect(","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.createdispatcher((msg)","nc.publish(\"updates\",","nc.subscribe(\"updates\");","nc.subscribe(\"updates\",","nc.unsubscribe(e.sid)","new","nil","node","noisy.","nonloc","notif","notifi","occurring.","occurs.","off.","on","onc","option","options.builder().","overload","pass","patterns:","pend","pending_bytes_limit=5*1024*1024,","pending_msgs_limit=1000)","pending_msgs_limit=5)","per","perform","persist","prevent","print(\"[received]\",","print(\"slow","print(msg)","problem","problems,","procces","process","product","production.","proposit","provid","public","publish","python","queue","queue,","quickly.","range(0,","rates.","receiv","request/repli","requirement.","respond","result,","rubi","second","second,","send","sender","sent","server","server(\"nats://demo.nats.io:4222\").","server,","servers=[\"nats://demo.nats.io:4222\"],","set","settings,","sever","similar","singl","size.","slow","slowconsumerdetected(connect","slowconsumerlisten","slowconsumerreport","slowconsumerreporter()).","someth","sometim","specif","split","static","stream","string","sub","sub.","sub.dropped()","sub.setpendinglimits(1_000,","sub.subject,","sub1,","sub1.setpendinglimits(1000,","sub2,","sub2.setpendinglimits(","subject","subscrib","subscriber,","subscript","subscription.","support","system.out.println(\"a","take","throttl","through","time","total","traffic","tri","try:","ts","two","type(e)","typescript","unsubscrib","up","up.","us","usual","void","way","whichev","work","{","{})","}","}))","});"],"developer/tutorials/intro.html":["tutori"],"developer/tutorials/pubsub.html":["\"nat","$gopath/src/github.com/nat","%","'nat","(you","*","0.0.0.0:4222","0.6.4","1.","10.","11.","12.","13.","14.","15.","15:18:22.301550","15:18:22.301762","15:18:22.301769","16.","17.","18.","2\"","2.","2015/08/12","3\"","3.","4.","4222.","5.","6.","7.","8.","9.",":",">","[#1]","[1]","[inf]","[msg.test]","[msg.test]:","[penwidth=2];","[shape=\"box\",","[splines=ortho,","[style=dash","activ","active\\nsubscriber\"];","anoth","arrowhead=\"none\"];","both","cd","chang","charact","check","client","client.","color=r","command","connect","count","differ","digraph","directori","each","exampl","example:","explor","follow","gnatsd","go","graph","hello","increment","installed.","io/nats/exampl","it:","label=\"nats\",","label=\"non","label=\"pub\\ncom.msg.one\"];","label=\"sub\\ncom.msg.*\"];","label=\"sub\\ncom.msg.one\"];","label=\"sub\\ncom.msg.two\"];","last","listen","match","messag","message\"","message'","message,","message.","message:","messages:","msg.*","msg.test","msg.test.new","name","nat","nats_pub_sub","nodesep=1];","non_act","note","on.","port","prerequisit","program","program.","prompt","pub.go","pub/sub","pub1","public","publish","publish.","publisher.","rank=sam","readi","receipt","receiv","received.","run","same","second","see","send","server","session","shell","singl","start","string","sub.go","sub1","sub2","sub3","sub4","subject","subject,","subject.","subject.)","subject:","subscrib","subscriber.","subscribers.","successfully,","support","system.","tail","tcp","text","third","three","time","time,","token","uniqu","updat","us","valid","verifi","version","why?","width=8];","wildcard","{","}"],"developer/tutorials/reqreply.html":["\"help.please\"","\"request","\"some","\"thi","$gopath/src/github.com/nat","%","(\"ok,","1.","2.","3.","4.","5.","act","cd","chang","client","clients.","directori","exampl","exchang","explor","foo","formul","gnatsd","go","help!!!),","inbox","installed.","io/nats/exampl","listen","listening,","make","messag","message\"","message,","messaging.","nat","nats,","nats.","on","payload\"","point","prerequisit","receiv","receiver,","repli","req.go","request","request/repli","requester.","requestor","requests.","response\"","rply.go","run","see","send","server","session","start","subject.","subscriber.","support","termin","terminal,","tutori","two","us","โ€œhelp.pleaseโ€"],"developer/tutorials/queues.html":["\"hello","$gopath/src/github.com/nat","&","'hello","*6.","1.","2.","3","3.","4.","5.","7.","8.","9.",":","[foo]","addition,","again!\"","anoth","balanc","cd","chosen","client","clone","differ","each","exampl","explor","foo","form","gem","git","github.com/nat","go","group","group.","groups.","https://github.com/nat","instal","installed.","io/go","io/nod","io/rubi","load","members.","messag","message.","message:","name","name.","nat","nats!\"","nats!'","nats.git","nats/exampl","node","npm","on","prerequisit","pub.go","public","publish","qsub.go","queue","random","randomli","receipt","receiv","regist","repositori","rubi","run","see","select","send","server","singl","start","sub","sub.go","subscrib","support","time,","us","verifi","without*"],"developer/tutorials/custom_dialer.html":["!=","\"context\"","\"github.com/nat","\"log\"","\"net\"","\"time\"","&customdialer{","(","(cd","(net.conn,",")","*","*customdialer)","*nats.conn","*nats.conn)","//","1","10",":=","=","[]nats.option{","above,","address","address)","advanc","against","allow","altogeth","altogether.","c.connectedurl())","cancel","cancel()","case","cd","cd.connecttimeout)","client","client.","closed.\")","connect","connecting/reconnect","connection...","connecttimeout","connecttimeout:","connecttimewait","connecttimewait:","context","context.context","context.withcancel(context.background())","context.withtimeout(cd.ctx,","ctx","ctx,","ctx.err()","ctx:","custom","customdial","deadline,","defer","defin","dial(network,","dialcontext","dialer","err","error","error)","establish","example,","featur","follows:","func","func()","go","have","implement","import","intern","io/go","let'","log.fatal(err)","log.println(\"attempt","log.println(\"disconnect","log.println(\"nat","log.println(\"reconnect","logic","longer","main","main()","make","modifi","nat","nats\"","nats\")","nats.closedhandler(func(c","nats.connect(\"127.0.0.1:4222\",","nats.disconnecthandler(func(c","nats.noreconnect(),","nats.reconnecthandler(func(c","nats.reconnectwait(2","nats.setcustomdialer(cd),","nc","nc,","nil","nil,","number","opt","option","opts...)","packag","parent","retri","return","select","server","string)","struct","time","time.dur","time.second),","time.second,","timeout","to\",","type","until","us","valid:","var","wait","waitforestablishedconnection:","want","without","{","}","}()","}),"],"developer/streaming/":["\"nat","\"stan\"","\"streaming.\"","#1","#2.","(1","(convert","(sinc","1","10","2","3","=","ack","acknowledg","acknowledged.","acks.","active.","actual","ad","add","affect","allow","app","appear","applic","arenโ€™t","arrays,","arrays.","arriv","automat","avail","availability,","available)","available:","away","base","befor","both","buffer","buffer.","buffers,","byte","case","cases.","channel","client","client)","client.","close,","collect","come","concept","configur","configuration.","consid","content.","control","core\"","count","crashes,","creation","creation.","current","cursor","data","databases.","deal","decid","defin","deliv","delivered.","deliveri","delta","determin","develop","differences.","directions.","disconnect","disconnect,","disconnect/unsubscribe.","donโ€™t","durabl","durable/queu","each","encod","expire,","expires,","expires.","fail","file","flight","flight)","foresight","go","goe","greater","handl","happen.","help","hide","hit","however,","idempotent.","ignor","implement","indic","inflight","instead","insur","internally.","introduct","isnโ€™t","last","librari","limit","listen","locat","lose","maintain","make","manag","mani","manual","max","maximum","mean","mechan","messag","message.","messages.","mind","missing.","more","move","msg","multipl","nat","nats.","need","new","normally,","number","old","oldest","on","onc","once.","ones.","opaqu","option","order","order,","order.","organ","out","per","perform","persisted.","persistent,","pick","posit","position,","position.","program","protocol","provid","publish","publishers.","qualiti","queue","raw","re","reached.","receiv","reconnect","redeliv","redelivered.","redeliveri","refer","regular","remov","repli","repres","request","request.","requir","requirement.","respect","ring","room","round","safer,","same","scenarios.","send","sent","sequenc","server","server.","servic","service,","set","set.","setting.","sever","share","side","side.","simpli","situation.","sometim","specifi","start","store","stream","subject","subjects.","subscrib","subscribers,","subscribers.","subscript","subscriptions:","support","switch","talk","think","thought","through","time","time,","time.","timeout","top","traffic","tri","trip","type","unacknowledg","unsubscribe.","until","upon","us","valu","value.","variou","wait","want","way","ways:","well","wildcard.","wire","wonโ€™t","wrap"],"developer/streaming/connecting.html":[":=","aren't","avail","case","client","client.","clientid,","cluster","commun","configuration,","connect","connection.","connection:","conveni","creat","defin","err","exist","first","first,","gener","id","id,","instead","librari","mechan","method","method.","nat","nats.","new","one.","options,","or,","over","perform","protocol","provid","requir","reus","run","sc,","server","server,","server.","servic","set","singl","sometim","stan.connect(clusterid,","stan.natsconn(nc))","stan.natsurl(โ€œnats://localhost:4222โ€))","step.","stream","take","top","us","want","way"],"developer/streaming/publishing.html":["...",".these",":=","[]byte(\"hello","ack","ackhandl","ackhandler)","applic","associ","asynchronously.","be","block","callback","callback.","channel","client","err","error","error){","error.","except","func(ackednuid","global","id","identifi","indic","kind","librari","messag","method","notifi","nuid,","provid","publish","required.","return","sc.publish(\"foo\",","sc.publishasync(\"foo\",","sent","server.","stream","string,","synchronously.","timeout","timeout.","until","us","way","world\"))","world\"),","}"],"developer/streaming/receiving.html":["*stan.msg)","...","1",":=","accept","arriv","at:","begin","binari","bit","buffer","channel","client","come","core","creation","data.","durabl","err","example,","forms:","func(m","go","index","last","messag","message,","messages.","more","name.","nat","nats.","opaqu","posit","present","protocol","queue","queue/dur","raw/opaqu","receiv","regular","sc.subscribe(\"foo\",","set","sever","similar","specif","stan.deliverallavailable())","stan.startatsequence(22))","stan.startattime(starttime))","stan.startwithlastreceived())","start","starttim","still","stream","structur","sub,","subscrib","subscript","supported.","time","time.","time.tim","transparent.","us","var","wildcard","{...},"],"developer/streaming/durables.html":["*stan.msg)","affect","channel.","clear","client","connect","connected.","disconnect","disconnected.","durabl","durable\"))","even","func(m","identifi","lost.","name.","posit","regular","rememb","sc.subscribe(\"foo\",","stan.durablename(\"mi","subscript","subscription.","themselv","unsubscrib","wonโ€™t","{...},"],"developer/streaming/queues.html":["*stan.msg)",":=","_","addit","base","client","clients,","creat","flight","func(m","group,","group.","groups.","independ","kill","last","max","messag","name.","per","qsub1,","qsub2,","queue","queuename,","receiv","remov","sc.queuesubscribe(channelid,","share","subscript","subscription.","subscriptions,","uniqu","unsubscrib","{...})"],"developer/streaming/acks.html":["*stan.msg)","1",":=","ack","ack.","acknowledg","acknowledgement.","auto","befor","callback","client","control.","default","err","flag","flight","flightโ€","func(m","incom","insur","librari","limit","m.ack()","manual","max","messag","message.","messages.","more","option","order.","process","provid","rate","receiv","resend","returns.","sc.subscribe(\"foo\",","send","sent","server","set","stan.ackwait(aw))","stan.maxinflight(25))","stan.setmanualackmode(),","sub,","subscrib","subscript","time","to:","true","us","wait","{","{...},","},","โ€œmax"],"nats_protocol/nats-protocol-demo.html":["$","'^]'.","'stale","(5).","(foo.bar),","(hello),","(pub),","+","+ok","1.","10.","107.170.221.32...","2.","3.","4.","4222","5","5.","6.","7.","8.","9.","90","90.","active,","again.","anoth","based,","charact","client","client.","command","commands.","connect","connection'.","demo","demo.nats.io","demo.nats.io.","deregistr","disconnect","easi","enter","err","error","escap","example:","expect","experi","explor","few","follow","foo.*","foo.bar","hello","hello.","id","includ","indic","info","instruct","interest","interest.","interval,","interval.","language.","leav","length","manifest","messag","message.","minutes,","msg","name","nat","nats.","notic","open","optional.reply.subject","payload","ping","ping/pong","platform","pong","press","protocol","provid","pub","publication.","publish","publisher.","quickli","receipt.","receiv","reconnect","registration.","repli","reply.","request","respond","result:","run","second","send","serv","server","server.","session","session.","set","simpl","size","sub","subject","subject.","subscrib","subscribe.","subscriber.","subscript","success","telnet","telnet.","termin","text","tri","unsub","unsubscrib","unsubscribe:","us","virtu","virtual","wildcard","window.","wire","within","you'll","{\"server_id\":\"ad29ea9cbb16f2865c177bbd4db446ca\",\"version\":\"0.6.8\",\"go\":\"go1.5.1\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"max_payload\":1048576}"],"nats_protocol/nats-protocol.html":["\"connect_urls\":[\"10.0.0.184:4333\",\"192.168.129.1:4333\",\"192.168.192.1:4333\"]","\"echo\"","\"hello","\"knock","#bytes:","%","':","'^]'.","'`'","'attempt","'author","'invalid","'maximum","'parser","'permiss","'secur","'slow","'stale","'unknown","(*)","(.),","(64","(>),","(cr+lf,","(default","(e.g.","(foo.*.baz","(if","(inbox)","(or","(see","(sid)","(space)","(tab).","(the","(version","+ok","+ok/err",".bar","0","0,","0.0.0.0","0\\r\\n\\r\\n","0x0d0a)","1","1,","1.","1.2.0","1.2.0+)","1024","107.170.221.32...","10mb).","11\\r\\nhello","11\\r\\nknock","1:","1\\r\\n","4222","44:","44\\r\\n","5","5\\r\\n","64k.","8","9","90)",":",">","[connect","[max_msgs]","[queue","[repli","\\r\\n","\\r\\n,","\\r\\n[payload]\\r\\n","absent)","accept","account","acknowledg","acknowledgements.","addit","address","aliv","alloc","allow","along","alphanumer","andfoo..bar","anytim","api","applic","ascii","assign","asterisk","asynchron","asynchronously.","attempt","auth_requir","auth_required:","auth_token:","authent","author","authorization,","auto","automat","back","bar","bar,","base","befor","below","below),","below.","between","binari","bits)","boolean.","both","briefli","built","byte","bytes,","bytes.","case","cases.","caus","certif","chang","charact","checking,","clean","click","client","client,","client.","client:","client_advertis","client_id:","close","cloud","cluster","commun","concern","configur","configurable.","configured.","confirm","connect","connect.","connect_url","connection'","connection':","connection.","connects,","consid","consist","constraint","consume,","consumer':","contain","content,","content.","content:","continu","control","control,","convent","correl","cours","cr","creat","credenti","crlf","current","cut","data","default","default.","delimit","delimiter.","delimiters:","deliv","demo","demo.nats.io","demo.nats.io.","describ","descript","destin","detail","disconnect.","distribut","don't","done","dot","down.","due","dure","dynam","e.g.","e.g.:","each","easi","echo:","efficient.","elig","embed","empti","enabled.","encoding:","end","equivalent.","err","error","error':","error.","errors,","escap","establish","etc...","exampl","example,","exce","exceed","exceeded':","exchang","exist","expands,","expect","explain","express","f*o.b*r","fact,","fail","fals","fast","featur","feature,","feature.","field","filter","final","first","flow","follow","followed,","follows:","foo","foo*.bar,","foo,","foo.","foo.*.quux","foo.>","foo.bar","foo.bar,","foo.bar.baz","foo.bar.baz.","foo.bar.baz.1,","foo.bar.quux,","foo.bar:","foo:","foo>","foreign","form","format","friendli","front.door","full","g1","gener","given","go","go:","golang","greater","group","group.","group:","group]","guarante","handl","handshake.","hasn't","here","host.","host:","host:port","id","id,","identifi","idl","implement","inbox","inbox.22","inbox.22:","inbox.34","inbox:","includ","include:","indic","info","inform","information,","information.","initi","insensitive,","instead","int.","integ","interact","interest","interested.","intern","interoperability.","interv","interval,","interval.","invalid","ip","itself","join","keep","knock\"","knock\\r\\n","known","lang:","languag","languages.","last","latter","length","level","level.","lf","limit","line","line.","list","list.","listen","logs,","long","long,","long.","longer","look","make","malform","mark","match","max_connect","max_control_lin","max_msgs:","max_payload","max_payload:","maximum","mean","mechan","messag","message.","messages.","mode","monitoring,","more","msg","multipl","name","name,","name:","names,","names:","nat","nats!\"","nats!\\r\\n","nats:","necessari","need","new","newlin","newlines:","non","normal","not)","note","note,","notifi","notify:","number","off.","omit","on","onc","op","open","oper","operation':","option","option.","optional,","optional.","or\\t`","order","origin","pars","parser","part","pass:","password","payload","payload,","payload.","payload:","payloads.","pedantic:","pend","perform","performance,","permiss","ping","ping/pong","ping\\r\\n","play","pong","pong\\r\\n","port","port':","port,","port:","possibl","program","proper","properli","proto","proto:","protocol","protocol':","protocol,","protocol.","protocol:","provid","provided.","proxy,","pub","publish","publish/subscrib","publisher/requestor","queue","reach","receiv","received.","received:","reciev","reconfigur","reconnect","refer","regular","relev","remain","repli","reply.","repres","request","request,","requir","required':","required.","resources.","respond","respons","result","rout","runtim","same","sampl","script","second","second)","section","secur","see","send","sensit","sent","separ","sequenc","server","server)","server,","server.","server_id:","servers,","set","set)","set,","settings.","show","shut","sid","sid:","simpl","simple,","singl","site.","size","size,","small","socket","soon","specifi","specified,","ssl","ssl_requir","start","stay","still","strict","string","style","sub","subject","subject':","subject,","subject.","subject:","subscrib","subscript","subscriptions.","successfulli","suppli","supplied,","support","symbol","synchronously.","syntact","syntax","syntax:","system","tabl","tail","tcp/ip","telnet","telnet.","termin","text","this:","through","thu","timeout':","tl","tls.","tls/1.2","tls_required:","tls_verify:","to.","to:","to]","token","token.","took","topic","topolog","topology.","tradit","traffic","treat","tri","true","true,","turn","uniqu","unknown","unlik","unsign","unsub","unsubcrib","unsubscrib","unsubscribe)","up","updat","upon","url","us","user","user:","usernam","usual","utf","valid","valid;","valu","value),","varieti","verbos","verbose:","version","version:","violat","violation':","w/option","wait","well","where:","whether","whitespac","whitespace,","wide","wildcard","wildcard)","wildcard,","wildcards:","wire","within","world\\r\\n","yourself","zero","{\"server_id\":\"zk0gq3jbsrg3oyxcrrle09\",\"version\":\"1.2.0\",\"proto\":1,\"go\":\"go1.10.3\",\"host\":\"0.0.0.0\",\"port\":4222,\"max_payload\":1048576,\"client_id\":2392}","{\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"\",\"lang\":\"go\",\"version\":\"1.2.2\",\"protocol\":1}]\\r\\n","{[\"option_name\":option_value],...}"],"nats_protocol/nats-client-dev.html":["'pedantic'","'verbose'","(acks)","(set","(via","*subscript","+ok","8222","[]byte","acknowledg","acknowledgements.","active.","alloc","already.","argument","array.","asyncio","authent","author","auto","automat","bar","base","best","better,","between","beyond","but,","byte","bytes.","c","c#","callback","callback.","captur","case.","client","client'","client,","client.","clients,","clients.","cluster","clustering,","command","configur","connect","connect.","connection.","consider","correctli","data","decid","default","depend","design","details.","develop","differ","disabl","disconnect","discuss","dispatch","document","dure","dv","each","easi","efficient.","enabl","enforc","error","even","example,","example:","expect","fals","fast","faster","featured,","field","foo","format.","formula","full","gener","generally,","given","go","guid","handl","handler,","handlers.","handling,","hash","here.","id","id.","immut","implement","implementation.","includ","including:","indic","inform","insid","interpret","interv","it,","java","key","language.","learn","left","limit,","line:","logic","logic.","look","m","magic","maintain","make","mani","map","map.","mean","messag","message)","message),","message.","mode","mode,","mode.","modifi","msg","nat","nats.connect(\"nats://foo:bar@localhost:4222\")","need","node","on","oper","operation.","operations.","option","over","paramet","pars","parser","parsingโ€”it","pass","password","payload","pedant","perform","periodically,","ping","ping/pong","primarili","priori,","probabl","process","program","protocol","provid","pruning.","pub/sub","publish","publishmsg().","python","python,","python2","reasons.","receipt","receiver.","reconnect","regex","regex.","repli","reply.","req/rep","request/respons","requests/respons","requir","required.","retri","return","rubi","run","runtime.","see","server","server,","server.","side,","simpli","slice","so,","start","still","store","strategi","strategy.","strict","string","string,","struct","structur","structure.","style","sub","subject","subject,","subject.","subscrib","subscriber,","subscript","subscription.","sum,","support","synadia","take","tcp","team.","text","them,","thus,","time","transport","tutori","type","typescript","unauthent","understand","untouch","up","us","user","valid","verbos","vs.","way","well","wire","wire,","within","work.","write","zero","{","}"],"nats_protocol/nats-server-protocol.html":["\"hello","\"knock","#bytes:","'`'","'author","'invalid","'maximum","'parser","'slow","'stale","'unknown","(cr+lf,","(default","(e.g.","(go).","(if","(or","(sid)","(space)","(tab).","(the","+ok","+ok/","+ok/err","0.","0\\r\\n\\r\\n","0x0d0a)","1","1,","1.","11\\r\\nhello","11\\r\\nknock","14,","1:","1\\r\\n","44:","5","5,","5\\r\\n","64bit","9","90)",":","[max_msgs]\\r\\n","[repli","\\r\\n,","\\r\\n[payload]\\r\\n","_sys.,","accept","accept.","acknowledg","acknowledgements.","actual","add","addit","address","address,","aliv","alloc","along","alphanumer","alreadi","analog","anoth","assign","asynchronously.","attempt","auth_requir","auth_required:","auth_token:","authent","author","authorization,","auto","automat","back","bar","base","based,","basic","be","befor","begin","behalf","below","between","briefli","built","byte","case","caus","charact","checking,","cid:","click","client","client.","clients,","clients.","close","cluster","cluster,","cluster.","commun","concern","configur","connect","connect.","connect_url","connected.","connection':","connection.","connection:","consumer':","contain","context","continu","convent","cr","credenti","current","cut","data","deadline.","default","default.","delimit","delimiter.","delimiters:","deliv","describ","descript","destin","detail","disconnect.","discoveri","distribut","done","e.g.","each","efficient.","elig","empti","equivalent.","err","error","error':","error.","establish","exampl","exce","exceeded':","exceeded.","exchang","expired.","explain","fail","fals","fast","featur","field","field.","flush","follow","follows:","foo","foo.","foo.bar","foo.bar:","foo:","form","format","forward","front.door","g1","gener","given","go:","golang","group","group.","handl","help","here","host","host:","id","identifi","idl","implement","inbox","inbox.22","inbox.22:","inbox.34","inbox:","includ","indic","info","inform","information,","information.","ingest","initi","insensitive,","integ","interest","intern","interv","interval,","interval.","ip","ip:","it'","itself","join","keep","knock\"","knock\\r\\n","knowledg","lang:","languag","lf","limit","list","listen","local","long","long,","malform","mark","max_msgs:","max_payload","max_payload:","maximum","mean","mechan","messag","message.","messages,","messages.","more","msg","multipl","name","name,","name:","nat","nats!\"","nats!\\r\\n","necessari","new","newlin","newline.","newlines:","note","notifi","notify:","number","off.","omit","on","onc","op","oper","operation':","option","optional.","or\\t`","other,","parameter/opt","pars","parser","part","pass","pass:","password","payload","payload,","payload.","payload:","pedantic:","pend","ping","ping/pong","ping\\r\\n","pong","pong\\r\\n","port","port:","prefix","present.","propag","properli","protocol","protocol,","protocol.","protocols,","provid","proxi","pub","publish","publish/subscrib","publisher/requestor","qrsid:14:44\\r\\n","qrsid::","qrsid::\\r\\n","queue","queue:","receiv","received,","received.","received:","regular","remot","repli","repres","request","request,","requir","reserv","respect","respond","respons","restrict","result","rout","route://127.0.0.1:5222/\",\"connect_urls\":[\"localhost:4222\"]}","route://:","rsid:1:1","rsid:1:1\\r\\n","rsid:5:1\\r\\n","rsid::","rsid::\\r\\n","runtim","same","second","second)","section","secur","see","send","sent","sequenc","server","server'","server,","server.","server_id:","servers.","set","set)","set,","share","sid","sid:","similar","simpl","simple,","singl","size","small","socket","soon","specifi","specified,","ssl","state,","stay","still","strict","string","style","sub","subject","subject':","subject,","subject.","subject:","subscrib","subscribing,","subscript","subscription:","successfulli","suppli","supplied,","syntax","syntax:","tabl","tcp/ip","termin","text","through","thu","time","timeout':","tls.","tls_required:","to.","to:","to]","token","took","topology.","treat","tri","true","turn","two","uniqu","unknown","unless","unsign","unsub","unsubcrib","unsubscrib","unsubscribe)","unsubscribes.","unsubscribing,","updat","upon","url","us","user:","usernam","usual","valid","value),","verbos","verbose:","veri","version","version:","violation':","visual","wait","well","where:","whether","whitespac","wildcards,","wildcards:","within","world\\r\\n","write","zero","{\"server_id\":\"kp19vtlb417xelnv8kkac5\",\"version\":\"0.9.4\",\"go\":\"\",\"host\":\"localhost\",\"port\":5222,\"auth_required\":false,\"tls_required\":false,\"tls_verify\":false,\"max_payload\":1048576,\"ip\":\"nat","{\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"wt0vffeqyodgmvbc2akx0b\"}\\r\\n","{[\"option_name\":option_value],...}"]},"length":118},"tokenStore":{"root":{"0":{"0":{"1":{"7":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"0":{"docs":{},"u":{"3":{"docs":{},"w":{"docs":{},"j":{"1":{"5":{"3":{"docs":{},"y":{"docs":{},"v":{"docs":{},"p":{"0":{"docs":{},"u":{"docs":{},"x":{"docs":{},"r":{"8":{"docs":{},"y":{"docs":{},"o":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}}},"docs":{}}}}},"docs":{}},"docs":{}},"1":{"docs":{},"o":{"6":{"docs":{},"z":{"docs":{},"b":{"docs":{},"z":{"1":{"docs":{},"u":{"docs":{},"z":{"docs":{},"f":{"docs":{},"t":{"docs":{},"o":{"docs":{},"j":{"docs":{},"g":{"docs":{},"v":{"docs":{},"w":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"6":{"docs":{},"y":{"docs":{},"v":{"2":{"docs":{},"_":{"8":{"4":{"9":{"docs":{},"b":{"9":{"docs":{},"i":{"docs":{},"u":{"docs":{},"x":{"docs":{},"s":{"docs":{},"d":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}}}}}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}},"2":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}},"t":{"1":{"3":{"docs":{},":":{"4":{"1":{"docs":{},":":{"0":{"1":{"docs":{},".":{"1":{"1":{"3":{"1":{"7":{"9":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"4":{"docs":{},":":{"0":{"2":{"docs":{},":":{"4":{"6":{"docs":{},".":{"4":{"0":{"2":{"1":{"6":{"6":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"3":{"docs":{},"t":{"1":{"4":{"docs":{},":":{"3":{"2":{"docs":{},":":{"1":{"9":{"docs":{},".":{"9":{"6":{"9":{"0":{"3":{"7":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"4":{"docs":{},":":{"0":{"2":{"docs":{},".":{"0":{"6":{"6":{"0":{"7":{"7":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"3":{"docs":{},":":{"1":{"5":{"docs":{},".":{"4":{"5":{"3":{"8":{"2":{"4":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{}},"docs":{}},"5":{"2":{"6":{"6":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"3":{"0":{"4":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"4":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},"5":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.011869436201780416}},":":{"0":{"0":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656}}}}},"docs":{}},"2":{"0":{"docs":{},":":{"3":{"1":{"docs":{},".":{"1":{"0":{"0":{"0":{"3":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"7":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.011655011655011656}},":":{"0":{"0":{"docs":{},"\"":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}}}},"docs":{}},"docs":{}}},"8":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.017241379310344827}},":":{"4":{"5":{"docs":{},":":{"5":{"9":{"docs":{},".":{"8":{"3":{"6":{"8":{"0":{"9":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"8":{"9":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"docs":{}},"docs":{}},"7":{"1":{"6":{"1":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"8":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"7":{"0":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"6":{"docs":{},":":{"1":{"2":{"docs":{},".":{"7":{"3":{"1":{"2":{"7":{"8":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"docs":{}},"3":{"4":{"7":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"docs":{}},"4":{"8":{"8":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"9":{"3":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"5":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"3":{"docs":{},".":{"4":{"6":{"7":{"0":{"9":{"9":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"9":{"docs":{},":":{"4":{"2":{"docs":{},":":{"1":{"1":{"docs":{},".":{"7":{"4":{"5":{"9":{"1":{"9":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"4":{"0":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"9":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}},"5":{"2":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01912568306010929},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.10074626865671642},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"0":{"0":{"0":{"1":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.018656716417910446}},".":{"0":{"docs":{},".":{"0":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},":":{"4":{"2":{"2":{"2":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.015503875968992248},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}},":":{"4":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"5":{"2":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"2":{"2":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"docs":{}},"7":{"2":{"2":{"2":{"docs":{},":":{"7":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"4":{"4":{"docs":{},":":{"7":{"2":{"4":{"4":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"6":{"docs":{},":":{"7":{"2":{"4":{"6":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"8":{"docs":{},":":{"7":{"2":{"4":{"8":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"8":{"2":{"2":{"2":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},":":{"8":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"9":{"2":{"2":{"2":{"docs":{},":":{"9":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"%":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}}},"3":{"docs":{},".":{"1":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}},"docs":{}}},"5":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"6":{"docs":{},".":{"4":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"6":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}},"docs":{}}},"8":{"docs":{},".":{"0":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}},"%":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"9":{"9":{"9":{"9":{"9":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},".":{"4":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"6":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}}},"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.05128205128205128},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}},"x":{"0":{"docs":{},"d":{"0":{"docs":{},"a":{"docs":{},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"docs":{}}},"docs":{}}},"1":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}},"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}},"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}},"docs":{}},"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}},",":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}},")":{"docs":{},";":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}},"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"1":{"4":{"docs":{},".":{"6":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"docs":{}}},"docs":{}},"2":{"4":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}},"*":{"2":{"docs":{},";":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}},"5":{"0":{"0":{"0":{"docs":{},")":{"docs":{},";":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},")":{"docs":{},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}},";":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}},"docs":{},".":{"4":{"9":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}}},"4":{"8":{"5":{"7":{"6":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"5":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}},"7":{"docs":{},".":{"1":{"7":{"0":{"docs":{},".":{"2":{"2":{"1":{"docs":{},".":{"3":{"2":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"6":{"6":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}}},"8":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"9":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.009615384615384616},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}},".":{"1":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}}},"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}}},"docs":{}}},"docs":{}}},"docs":{}},"3":{"docs":{},"m":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}},"4":{"docs":{},"m":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.005597014925373134}}}},"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},":":{"5":{"0":{"docs":{},":":{"5":{"5":{"docs":{},".":{"9":{"0":{"2":{"4":{"7":{"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"5":{"4":{"7":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"docs":{}},"3":{"6":{"6":{"9":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"8":{"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"9":{"6":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"9":{"0":{"9":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"1":{"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"7":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"6":{"docs":{},".":{"8":{"3":{"0":{"6":{"6":{"9":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"7":{"3":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"docs":{}},"1":{"0":{"7":{"9":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"2":{"1":{"1":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"9":{"0":{"6":{"1":{"0":{"3":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"4":{"0":{"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"4":{"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"6":{"4":{"7":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"7":{"7":{"2":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259}}},")":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}},";":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"*":{"1":{"0":{"0":{"0":{"docs":{},",":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"}":{"docs":{},";":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}}}},"m":{"docs":{},"b":{"docs":{},")":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"1":{"5":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}},"7":{"docs":{},".":{"0":{"6":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}}},"8":{"7":{"4":{"3":{"0":{"4":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},":":{"2":{"1":{"docs":{},":":{"1":{"9":{"docs":{},".":{"8":{"0":{"1":{"5":{"3":{"9":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"6":{"2":{"1":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"7":{"7":{"7":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"8":{"2":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"5":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"7":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"docs":{},":":{"2":{"0":{"docs":{},".":{"2":{"1":{"6":{"3":{"2":{"2":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"5":{"3":{"9":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"3":{"6":{"7":{"2":{"7":{"5":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"9":{"1":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"4":{"1":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},".":{"8":{"4":{"5":{"1":{"4":{"8":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"2":{"4":{"1":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"5":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"6":{"7":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"4":{"5":{"9":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"5":{"5":{"2":{"9":{"1":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"3":{"0":{"1":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"3":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"6":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"3":{"3":{"docs":{},":":{"4":{"0":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},".":{"5":{"0":{"1":{"3":{"0":{"5":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"8":{"3":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"4":{"0":{"4":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"3":{"0":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"0":{"2":{"7":{"3":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"8":{"3":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"5":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"9":{"1":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},".":{"1":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"2":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"4":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"5":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"6":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694}}}},"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}},"2":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012}}}},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}},"docs":{}},"2":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"4":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}},":":{"4":{"2":{"2":{"2":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}}},"docs":{}},"4":{"4":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}},"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.012755102040816327}}},"docs":{}},"docs":{}},"9":{"8":{"0":{"5":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"5":{"0":{"8":{"9":{"1":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}},"2":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}},"docs":{}},"docs":{}},"docs":{}},"1":{"3":{"8":{"3":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.013605442176870748}}},"docs":{}},"docs":{}},"docs":{}},"2":{"6":{"7":{"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898}}},"docs":{}},"docs":{}},"7":{"2":{"6":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898}}},"7":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898}}},"docs":{}},"docs":{}},"docs":{}},"6":{"1":{"3":{"4":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}},"4":{"4":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}},"5":{"1":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"4":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.006377551020408163}}},"docs":{}},"docs":{}},"docs":{}},"7":{"3":{"3":{"3":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613}}},"docs":{}},"docs":{}},"4":{"4":{"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"1":{"docs":{},".":{"1":{"docs":{},":":{"5":{"6":{"1":{"3":{"8":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"9":{"2":{"2":{"8":{"8":{"0":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},":":{"5":{"1":{"docs":{},":":{"5":{"2":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"3":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"4":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"5":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},".":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"3":{"docs":{},":":{"1":{"1":{"docs":{},":":{"4":{"4":{"docs":{},".":{"0":{"5":{"9":{"0":{"1":{"2":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"8":{"3":{"0":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"1":{"5":{"4":{"4":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"9":{"6":{"6":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"3":{"9":{"6":{"8":{"1":{"9":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"3":{"2":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"7":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"9":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"4":{"2":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"4":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"5":{"5":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"8":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"9":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"3":{"docs":{},":":{"1":{"0":{"docs":{},".":{"0":{"4":{"8":{"6":{"6":{"3":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"8":{"4":{"3":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"9":{"0":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"9":{"6":{"8":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"9":{"2":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"3":{"8":{"8":{"2":{"8":{"2":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"3":{"0":{"1":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"9":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"1":{"2":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"6":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"9":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"3":{"3":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"8":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"4":{"1":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"2":{"6":{"docs":{},":":{"3":{"2":{"docs":{},".":{"0":{"3":{"7":{"8":{"1":{"9":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"9":{"1":{"2":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"9":{"7":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}},"8":{"0":{"2":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},".":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"4":{"docs":{},":":{"2":{"0":{"docs":{},":":{"1":{"3":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"docs":{}},"docs":{}}},"docs":{}},"3":{"7":{"docs":{},":":{"4":{"9":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"docs":{}},"docs":{}}},"docs":{}},"4":{"5":{"docs":{},":":{"1":{"8":{"docs":{},".":{"0":{"0":{"1":{"3":{"5":{"7":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"5":{"docs":{},":":{"1":{"1":{"docs":{},".":{"9":{"8":{"1":{"4":{"3":{"4":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}},"docs":{}},"5":{"4":{"5":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}},"6":{"0":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"5":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}},"docs":{}},"docs":{}},"2":{"4":{"9":{"2":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"9":{"docs":{},":":{"4":{"2":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"t":{"1":{"2":{"docs":{},":":{"5":{"5":{"docs":{},":":{"2":{"5":{"docs":{},".":{"5":{"6":{"4":{"8":{"1":{"8":{"0":{"5":{"1":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"3":{"docs":{},":":{"2":{"9":{"docs":{},":":{"2":{"6":{"docs":{},".":{"4":{"2":{"6":{"8":{"0":{"5":{"5":{"0":{"8":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"3":{"0":{"docs":{},":":{"5":{"9":{"docs":{},".":{"3":{"4":{"9":{"1":{"7":{"9":{"9":{"6":{"3":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},".":{"5":{"7":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529}}},"8":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},",":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"5":{"4":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"5":{"6":{"2":{"2":{"9":{"0":{"6":{"2":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.017241379310344827}},":":{"0":{"1":{"docs":{},":":{"1":{"3":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"4":{"docs":{},":":{"4":{"7":{"docs":{},".":{"3":{"3":{"9":{"3":{"2":{"1":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"4":{"0":{"7":{"8":{"7":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"8":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"5":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"5":{"9":{"docs":{},".":{"9":{"7":{"0":{"0":{"1":{"4":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"1":{"1":{"5":{"0":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"7":{"6":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"9":{"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"5":{"5":{"1":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"6":{"0":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"7":{"2":{"0":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"3":{"1":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"3":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"8":{"docs":{},":":{"2":{"2":{"docs":{},".":{"3":{"0":{"1":{"5":{"5":{"0":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"docs":{}},"docs":{}},"7":{"6":{"2":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"9":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"9":{"docs":{},":":{"1":{"1":{"docs":{},".":{"5":{"2":{"8":{"1":{"8":{"5":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"9":{"7":{"8":{"7":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"8":{"2":{"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"4":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"7":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"3":{"0":{"2":{"7":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"8":{"1":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"3":{"0":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"8":{"4":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"4":{"0":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"1":{"4":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"6":{"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"5":{"6":{"5":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"7":{"0":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"9":{"5":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"6":{"4":{"4":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"5":{"0":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"9":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"6":{"4":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"2":{"6":{"docs":{},":":{"3":{"9":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},".":{"3":{"3":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"6":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.009389671361502348}},":":{"0":{"6":{"docs":{},":":{"2":{"6":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207}}},"7":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},".":{"4":{"3":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"7":{"2":{"docs":{},".":{"1":{"7":{"docs":{},".":{"0":{"docs":{},".":{"5":{"2":{"docs":{},":":{"6":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{},".":{"0":{"8":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.009389671361502348}}},"docs":{}},"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"8":{"0":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"5":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"7":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},":":{"3":{"4":{"docs":{},":":{"1":{"9":{"docs":{},".":{"6":{"0":{"5":{"1":{"4":{"4":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"9":{"1":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"2":{"8":{"6":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"3":{"1":{"2":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"docs":{}},"8":{"7":{"5":{"6":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},".":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"5":{"9":{"docs":{},".":{"1":{"0":{"3":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},":":{"7":{"2":{"4":{"4":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"7":{"0":{"docs":{},")":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"docs":{}},"docs":{},":":{"4":{"8":{"docs":{},":":{"5":{"5":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"8":{"docs":{},":":{"0":{"1":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.022388059701492536},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.009389671361502348},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.014519056261343012},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"h":{"2":{"docs":{},"m":{"2":{"3":{"docs":{},"s":{"docs":{},")":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"docs":{}},"docs":{}}},"7":{"docs":{},"m":{"0":{"docs":{},"s":{"docs":{},")":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"docs":{}}},"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},":":{"1":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}}},"4":{"2":{"2":{"2":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.01775147928994083}},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"2":{"2":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"n":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},".":{"0":{"docs":{},"m":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"k":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}}},"1":{"docs":{},".":{"0":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01092896174863388},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.018656716417910446}}},"docs":{}},"m":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694}}}},"2":{"docs":{},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},".":{"0":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"+":{"docs":{},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"docs":{}}},"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"0":{"0":{"0":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"4":{"docs":{},",":{"6":{"1":{"5":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"7":{"6":{"docs":{},",":{"5":{"3":{"7":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"1":{"1":{"9":{"docs":{},",":{"4":{"3":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}},"docs":{}},"4":{"4":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}},"9":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"6":{"1":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"6":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}},"docs":{}},"docs":{}},"6":{"5":{"3":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"2":{"docs":{},",":{"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}},"docs":{}}},"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}},")":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}},"/":{"2":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"docs":{}},";":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}},"/":{"2":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},"docs":{}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}},"2":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{}},"docs":{}},"1":{"5":{"docs":{},"/":{"0":{"6":{"docs":{},"/":{"2":{"3":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}}},"8":{"docs":{},"/":{"1":{"2":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}}},"9":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"6":{"docs":{},"/":{"0":{"4":{"docs":{},"/":{"2":{"6":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.04591836734693878}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"0":{"docs":{},"/":{"3":{"1":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.06537530266343826},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"7":{"docs":{},"/":{"0":{"6":{"docs":{},"/":{"2":{"8":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.027777777777777776}}},"docs":{}},"docs":{}}},"9":{"docs":{},"/":{"2":{"8":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"9":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"/":{"0":{"5":{"docs":{},"/":{"0":{"7":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.04774535809018567}}},"docs":{}},"1":{"0":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.025411061285500747}}},"3":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.021052631578947368},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.06976744186046512}}},"6":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.03481012658227848},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.034013605442176874}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},":":{"0":{"9":{"docs":{},":":{"5":{"8":{"docs":{},".":{"5":{"7":{"2":{"9":{"3":{"9":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}},"docs":{}},"docs":{}},"3":{"0":{"0":{"7":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}},"7":{"1":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}},"9":{"0":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"2":{"1":{"docs":{},":":{"3":{"4":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},"docs":{}},"docs":{}}},"docs":{}},"3":{"6":{"docs":{},":":{"2":{"5":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}},")":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}},"*":{"1":{"0":{"0":{"0":{"docs":{},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"docs":{}},"docs":{}},"docs":{}},"2":{"0":{"0":{"0":{"docs":{},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"s":{"docs":{},":":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}},"1":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}},":":{"3":{"2":{"docs":{},":":{"4":{"3":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"docs":{}},"docs":{}}},"3":{"docs":{},":":{"5":{"8":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"docs":{}},"docs":{}}},"docs":{}},"5":{"1":{"docs":{},":":{"0":{"2":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"docs":{}},"docs":{}}},"8":{"docs":{},":":{"1":{"4":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"2":{"3":{"docs":{},",":{"9":{"3":{"3":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}},"docs":{}},"docs":{}},"docs":{}}},"4":{"docs":{},",":{"5":{"5":{"2":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"5":{"3":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}},"docs":{},",":{"3":{"4":{"4":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"8":{"8":{"9":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"9":{"5":{"5":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"6":{"docs":{},",":{"3":{"9":{"5":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{},":":{"0":{"4":{"docs":{},":":{"2":{"9":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"docs":{}},"docs":{}}},"docs":{}},"1":{"5":{"docs":{},":":{"5":{"8":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"docs":{}},"docs":{}}},"docs":{}},"3":{"3":{"docs":{},":":{"1":{"3":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"docs":{}},"docs":{}}},"docs":{}},"4":{"3":{"docs":{},":":{"4":{"6":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"4":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907}},"b":{"docs":{},"c":{"6":{"docs":{},"b":{"docs":{},"d":{"3":{"3":{"docs":{},"e":{"docs":{},"a":{"7":{"docs":{},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}},"docs":{}}}},"docs":{}},"docs":{}}}},"docs":{}}}},"5":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"s":{"docs":{},"k":{"docs":{},"x":{"docs":{},"s":{"docs":{},"o":{"8":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"h":{"docs":{},"u":{"docs":{},"z":{"docs":{},"n":{"docs":{},"u":{"1":{"5":{"docs":{},"e":{"4":{"9":{"8":{"9":{"docs":{},"m":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}}}}}},")":{"docs":{},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}},"6":{"0":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"7":{"6":{"1":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{}},"9":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.01293103448275862},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.007592190889370932},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296}},".":{"0":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":3.342167255594817},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395}}},".":{"0":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.015503875968992248},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198}}}},"3":{"docs":{},".":{"1":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}},"docs":{}}},"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},"d":{"3":{"docs":{},"d":{"0":{"0":{"docs":{},"b":{"0":{"9":{"4":{"1":{"docs":{},"f":{"docs":{},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"}":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}},"]":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},",":{"0":{"0":{"9":{"docs":{},",":{"2":{"3":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}},"s":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"x":{"docs":{},"l":{"8":{"docs":{},"r":{"docs":{},"w":{"6":{"docs":{},"v":{"docs":{},"m":{"9":{"9":{"docs":{},"x":{"6":{"2":{"2":{"docs":{},"e":{"docs":{},"f":{"docs":{},"b":{"docs":{},"d":{"docs":{},"m":{"docs":{},"k":{"docs":{},"b":{"9":{"6":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"docs":{}},"docs":{}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}},"docs":{}}}},"docs":{}}}},":":{"4":{"2":{"2":{"2":{"docs":{},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"2":{"2":{"docs":{},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"n":{"docs":{},"d":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}},"m":{"2":{"docs":{},"s":{"docs":{},")":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"docs":{}},"\"":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}},"]":{"docs":{},";":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}},"k":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}},"3":{"0":{"2":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{"./":{"ref":"./","tf":0.013157894736842105},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"m":{"5":{"1":{"docs":{},"s":{"docs":{},")":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"docs":{}},"docs":{}},".":{"6":{"6":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}}},"1":{"docs":{},"m":{"4":{"2":{"docs":{},"s":{"docs":{},")":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}},"docs":{}},"docs":{}}},"2":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"3":{"8":{"9":{"docs":{},".":{"7":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}}},"docs":{}},"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"4":{"docs":{},".":{"2":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694}}}},"docs":{}}},"6":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"7":{"docs":{},".":{"9":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}}},"8":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"9":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.006535947712418301},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.007462686567164179},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},".":{"0":{"docs":{},"m":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694}}}},"4":{"2":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"3":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"5":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}},"docs":{}},"7":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"\\":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}},"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},":":{"4":{"2":{"2":{"2":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"2":{"2":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"`":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609}}}},"\"":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}},"]":{"docs":{},";":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}},"4":{"0":{"0":{"0":{"docs":{},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"5":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"docs":{}},"docs":{}},"1":{"1":{"1":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"docs":{}},"docs":{}},"2":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.007653061224489796},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.020689655172413793},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},".":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},":":{"4":{"2":{"2":{"2":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},")":{"docs":{},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"docs":{}},"4":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"7":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"3":{"3":{"3":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00784313725490196}}},"docs":{}},"docs":{}},"4":{"4":{"4":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}}},"docs":{}},"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"5":{"docs":{},"m":{"4":{"0":{"docs":{},"s":{"docs":{},")":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"docs":{}},"docs":{}}},"7":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"8":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}},"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}},",":{"7":{"7":{"5":{"docs":{},",":{"7":{"0":{"9":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}},":":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},")":{"docs":{},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"5":{"0":{"0":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"docs":{}},"1":{"2":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"2":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"3":{"docs":{},"y":{"docs":{},"i":{"7":{"8":{"docs":{},"q":{"9":{"6":{"docs":{},"t":{"5":{"2":{"docs":{},"q":{"docs":{},"d":{"docs":{},"y":{"docs":{},"y":{"docs":{},"w":{"docs":{},"l":{"docs":{},"k":{"docs":{},"i":{"docs":{},"y":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}},"6":{"9":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"7":{"1":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"2":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"4":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.017241379310344827},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"9":{"docs":{},"m":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},",":{"5":{"9":{"7":{"docs":{},",":{"0":{"5":{"4":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"7":{"3":{"0":{"docs":{},",":{"8":{"5":{"1":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},")":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}},":":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}},"*":{"1":{"0":{"2":{"4":{"docs":{},"*":{"1":{"0":{"2":{"4":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"m":{"docs":{},"b":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"6":{"1":{"5":{"7":{"2":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"7":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{}},"7":{"9":{"1":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{}},"docs":{}},"2":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},":":{"6":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}},"docs":{}},"docs":{}},"3":{"3":{"3":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"docs":{}},"docs":{}},"4":{"3":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{},"k":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}},"5":{"1":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"5":{"3":{"6":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"*":{"1":{"0":{"2":{"4":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"6":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"7":{"7":{"9":{"docs":{},".":{"4":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}}},"docs":{}},"docs":{}},"8":{"docs":{},".":{"3":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"docs":{}}},"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.005597014925373134},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811}},",":{"7":{"1":{"6":{"docs":{},",":{"4":{"6":{"5":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"0":{"docs":{},"m":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"3":{"docs":{},"m":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}},"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}},"7":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}},"docs":{}},"4":{"4":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947}}},"6":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"8":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{},".":{"8":{"7":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}}},"5":{"docs":{},".":{"8":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}}},"9":{"2":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"docs":{},",":{"0":{"5":{"5":{"docs":{},",":{"6":{"4":{"4":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"6":{"7":{"1":{"docs":{},",":{"5":{"7":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}},"8":{"1":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"2":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}},":":{"8":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},".":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}},"docs":{}},"docs":{}},"3":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"4":{"4":{"5":{"9":{"5":{"2":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"5":{"docs":{},".":{"4":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}}},"7":{"3":{"docs":{},".":{"5":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"docs":{}}},"docs":{},".":{"4":{"5":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}}},"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"k":{"docs":{},"p":{"1":{"docs":{},"i":{"docs":{},"m":{"docs":{},"x":{"docs":{},"h":{"docs":{},"d":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}}}}}}}}}}},"docs":{}}},".":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},",":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}},"9":{"0":{"5":{"docs":{},".":{"1":{"docs":{},"k":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"docs":{}}},"9":{"0":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}},"6":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"docs":{}},"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.027586206896551724}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"1":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571}}},"docs":{}},"docs":{}},"3":{"7":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"5":{"5":{"docs":{},",":{"1":{"5":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}},"3":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"4":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"6":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"7":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}},"docs":{}},"docs":{}},"2":{"7":{"9":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"7":{"6":{"docs":{},".":{"5":{"6":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}},"docs":{}},"docs":{}}},"docs":{}},"8":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},".":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}},"docs":{},"(":{"1":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.01564945226917058}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"2":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"1":{"9":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},"docs":{}},"docs":{}},"docs":{}},"3":{"docs":{},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"5":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}},")":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}},"6":{"4":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"docs":{}},"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}},"s":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},")":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"o":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},"b":{"docs":{},"h":{"docs":{},"w":{"docs":{},"d":{"docs":{},"f":{"docs":{},"o":{"3":{"docs":{},"k":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"n":{"docs":{},"i":{"6":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"u":{"docs":{},"l":{"2":{"7":{"docs":{},"v":{"docs":{},"n":{"docs":{},"w":{"docs":{},"l":{"7":{"docs":{},"n":{"docs":{},"w":{"docs":{},"d":{"2":{"docs":{},"m":{"docs":{},"c":{"4":{"docs":{},"b":{"docs":{},"i":{"4":{"docs":{},"l":{"2":{"docs":{},"c":{"7":{"docs":{},"v":{"docs":{},"v":{"docs":{},"l":{"docs":{},"f":{"docs":{},"b":{"docs":{},"s":{"docs":{},"m":{"docs":{},"z":{"3":{"docs":{},"c":{"docs":{},"r":{"docs":{},"d":{"7":{"docs":{},"h":{"docs":{},"e":{"docs":{},")":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}},"d":{"2":{"docs":{},"u":{"docs":{},"j":{"docs":{},"b":{"3":{"docs":{},"g":{"docs":{},"f":{"docs":{},"u":{"docs":{},"h":{"docs":{},"x":{"docs":{},"o":{"docs":{},"q":{"2":{"docs":{},"u":{"docs":{},"u":{"docs":{},"m":{"docs":{},"z":{"docs":{},"q":{"docs":{},"g":{"docs":{},"o":{"docs":{},"c":{"docs":{},"l":{"4":{"docs":{},"q":{"docs":{},"v":{"docs":{},"r":{"2":{"docs":{},"l":{"docs":{},"r":{"docs":{},"j":{"docs":{},"o":{"docs":{},"d":{"docs":{},"p":{"docs":{},"z":{"docs":{},"h":{"7":{"docs":{},"m":{"docs":{},"i":{"docs":{},"p":{"docs":{},"g":{"docs":{},"l":{"docs":{},"w":{"docs":{},"c":{"docs":{},"q":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"j":{"docs":{},"b":{"docs":{},"u":{"2":{"7":{"docs":{},"c":{"3":{"docs":{},")":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}},"docs":{}},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}},"c":{"docs":{},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},"e":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}},"a":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"n":{"docs":{},"d":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}},"k":{"docs":{},"s":{"docs":{},")":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}},"b":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"u":{"docs":{},"t":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684}}}}},"e":{"docs":{},"d":{"2":{"5":{"5":{"1":{"9":{"docs":{},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"x":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.017921146953405017},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.023622047244094488}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506}}},",":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"e":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"n":{"docs":{},"c":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"d":{"docs":{},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}},"a":{"docs":{},"n":{"docs":{},")":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}},"m":{"docs":{},"e":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},")":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}}}}},"e":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"d":{"docs":{},")":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}},"m":{"docs":{},"i":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"o":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259}}}}},"a":{"docs":{},"b":{"docs":{},")":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"u":{"docs":{},"n":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"#":{"docs":{},"r":{"docs":{},"g":{"4":{"2":{"docs":{},"p":{"docs":{},"a":{"docs":{},"u":{"docs":{},"#":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{},"^":{"docs":{},"b":{"docs":{},"n":{"docs":{},"n":{"docs":{},"g":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}},"r":{"docs":{},"l":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},"s":{"docs":{},")":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"/":{"docs":{},"m":{"docs":{},"k":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"d":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{},")":{"docs":{},".":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}},"u":{"docs":{},"b":{"docs":{},")":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}},"o":{"docs":{},"t":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}},"v":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"u":{"docs":{},"s":{"docs":{},"s":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}}}}},"i":{"docs":{},"n":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},")":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"f":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},"i":{"docs":{},"a":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},")":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164}}}}},"t":{"docs":{},"i":{"docs":{},")":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},".":{"docs":{},">":{"docs":{},")":{"docs":{},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}}},"'":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"g":{"docs":{},"z":{"docs":{},"m":{"docs":{},")":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}}},")":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"4":{"8":{"docs":{},")":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}},"docs":{}},"docs":{}},"docs":{}},"7":{"3":{"3":{"3":{"docs":{},")":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}},"docs":{}},"docs":{}},"4":{"4":{"4":{"docs":{},")":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},")":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}}},"\"":{"docs":{},"d":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"y":{"docs":{},"\"":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}}},"o":{"docs":{},"k":{"docs":{},",":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{},",":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},",":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}},"d":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}},"r":{"docs":{},"+":{"docs":{},"l":{"docs":{},"f":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"9":{"0":{"9":{"0":{"docs":{},"/":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},")":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}}}},"~":{"docs":{},"/":{"docs":{},".":{"docs":{},"n":{"docs":{},"s":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"/":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},")":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}},"*":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"z":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},",":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},")":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}}},"x":{"8":{"6":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}}},"docs":{}},"docs":{}},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.006720430107526882}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"|":{"docs":{},"i":{"docs":{},"o":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"|":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},")":{"docs":{},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}},"*":{"docs":{},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},">":{"docs":{},")":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"/":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}},"u":{"docs":{},"s":{"docs":{},"r":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"/":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"/":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{},"/":{"docs":{},"o":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"o":{"docs":{},"p":{"docs":{},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"1":{"0":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811}}},"docs":{}},"2":{"0":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005}}},"docs":{}},"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.08130081300813008},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.07534246575342465},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.026415094339622643},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.03333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0275},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.034482758620689655},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.02304147465437788},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.045454545454545456},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.03496503496503497},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.02702702702702703},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.023391812865497075},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.06018518518518518},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.03428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.025089605734767026},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.035175879396984924},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.018404907975460124},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.010739856801909307},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.06040268456375839},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.0430622009569378},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.04054054054054054},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.038461538461538464},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.04979253112033195},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.02928416485900217},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.027950310559006212},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.03508771929824561},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.029940119760479042},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.055900621118012424},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.031331592689295036},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0231023102310231},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.028},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.028225806451612902},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.032208588957055216},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.014563106796116505}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"/":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}}},"n":{"docs":{},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"/":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.010948905109489052}}}}}}}}}},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}},"_":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956}},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426}}}}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"/":{"docs":{},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}}}}}}},"docs":{}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\\":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}}}}},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.011189634864546525},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.013736263736263736},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.010071942446043165},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.005639097744360902},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.005791505791505791},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"=":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909}}}}}}}}}}}}}}}}}}}},"c":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"y":{"docs":{},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"e":{"docs":{},"r":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"n":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}}}}}}}}}}}},"o":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},"g":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"v":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"e":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"e":{"docs":{},".":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}},"s":{"docs":{},"o":{"docs":{},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}},"p":{"docs":{},"p":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}},"c":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.008275862068965517},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.03225806451612903},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.017142857142857144},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.013201320132013201},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.009202453987730062},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},":":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"i":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}},"e":{"docs":{},"s":{"docs":{},";":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}},"a":{"docs":{},"r":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"c":{"docs":{},"h":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"i":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"}":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}},".":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}},",":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}},"s":{"docs":{},",":{"docs":{"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988}}}}}},"u":{"docs":{},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}}}}}},"t":{"docs":{},"h":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":10.070866141732283},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.036036036036036036},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":5.019083969465649},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.00949367088607595},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":5.078125},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":5.011111111111111},"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01171875},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":3.340501792114695},"developer/security/token.html":{"ref":"developer/security/token.html","tf":5.015075376884422},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":5.012269938650307},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":3.348258706467661},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},":":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}},"/":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}}},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}},"e":{"docs":{},":":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.031496062992125984},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.036036036036036036},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.01740506329113924},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":10.024725274725276},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.0380952380952381},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.02247191011235955},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"z":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}},")":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},"{":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}},"o":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.014423076923076924},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":5},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},",":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}},")":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":3.3391812865497075}}}}},"g":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"o":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901}},"e":{"docs":{},".":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.017341040462427744},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}},")":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}},"u":{"docs":{},"t":{"docs":{},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}},",":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}}}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"t":{"docs":{},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}},"s":{"docs":{},".":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}}}}}},"c":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}},".":{"docs":{},">":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451}},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}},"h":{"docs":{},"y":{"docs":{},"l":{"2":{"7":{"docs":{},"u":{"docs":{},"a":{"docs":{},"h":{"docs":{},"h":{"docs":{},"q":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"x":{"docs":{},"a":{"5":{"docs":{},"h":{"docs":{},"l":{"docs":{},"h":{"2":{"docs":{},"y":{"docs":{},"w":{"docs":{},"h":{"docs":{},"f":{"docs":{},"q":{"docs":{},"b":{"docs":{},"i":{"docs":{},"p":{"4":{"docs":{},"y":{"docs":{},"m":{"docs":{},"p":{"docs":{},"c":{"7":{"docs":{},"r":{"docs":{},"n":{"docs":{},"z":{"4":{"docs":{},"p":{"docs":{},"s":{"docs":{},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"j":{"docs":{},"h":{"docs":{},"s":{"docs":{},"s":{"docs":{},"z":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"x":{"docs":{},"f":{"2":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}},"c":{"7":{"docs":{},"p":{"docs":{},"o":{"3":{"docs":{},"m":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"2":{"6":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826}},"u":{"3":{"docs":{},"l":{"docs":{},"f":{"docs":{},"z":{"docs":{},"f":{"docs":{},"p":{"5":{"docs":{},"b":{"docs":{},"n":{"3":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"3":{"2":{"docs":{},"x":{"3":{"docs":{},"p":{"docs":{},"k":{"docs":{},"l":{"docs":{},"b":{"docs":{},"r":{"docs":{},"v":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"e":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"h":{"docs":{},"w":{"docs":{},"p":{"docs":{},"q":{"docs":{},"e":{"docs":{},"u":{"docs":{},"g":{"7":{"docs":{},"e":{"docs":{},"j":{"docs":{},"y":{"4":{"docs":{},"h":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}},"docs":{}}}},"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.07017543859649122}}}},"p":{"docs":{},"t":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.032391048292108364},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":10.058544303797468},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.02446043165467626},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"sys_accounts/":{"ref":"sys_accounts/","tf":5.1},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.03857566765578635},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.037815126050420166},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.03665413533834586},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.03474903474903475},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.029288702928870293},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":3.373333333333333},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.02092675635276532},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.03468208092485549},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.04150943396226415},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.017341040462427744}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}},";":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"'":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"โ€™":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"'":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},";":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}},"b":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956}}}}}},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"h":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"t":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"i":{"docs":{},"v":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.011278195488721804},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.011583011583011582},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}},"e":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}}}}}}}}}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},",":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}},"o":{"docs":{},"n":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}},".":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}},"k":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.025210084033613446},"developer/streaming/":{"ref":"developer/streaming/","tf":0.021778584392014518},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.04225352112676056},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.06818181818181818}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"g":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.014652014652014652},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":10.016806722689076},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":10.011363636363637},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}},"s":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"s":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}}}}}}},".":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}},"s":{"docs":{},"u":{"3":{"docs":{},"q":{"6":{"docs":{},"l":{"docs":{},"t":{"docs":{},"l":{"docs":{},"b":{"docs":{},"v":{"docs":{},"l":{"docs":{},"g":{"docs":{},"a":{"docs":{},"q":{"docs":{},"u":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"x":{"docs":{},"j":{"docs":{},"h":{"docs":{},"v":{"docs":{},"n":{"docs":{},"w":{"docs":{},"g":{"docs":{},"s":{"docs":{},"k":{"docs":{},"k":{"docs":{},"a":{"docs":{},"u":{"docs":{},"a":{"7":{"docs":{},"i":{"docs":{},"y":{"5":{"docs":{},"t":{"docs":{},"b":{"4":{"docs":{},"z":{"7":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"k":{"docs":{},"s":{"docs":{},"r":{"5":{"docs":{},"o":{"6":{"docs":{},"j":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},":":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}},"docs":{}}},"docs":{}}}}}}}},"docs":{}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"d":{"5":{"7":{"docs":{},"m":{"docs":{},"f":{"docs":{},"n":{"docs":{},"b":{"docs":{},"i":{"docs":{},"k":{"docs":{},"o":{"3":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"docs":{}}}}}}}}},"docs":{}},"7":{"docs":{},"h":{"docs":{},"d":{"docs":{},"y":{"5":{"docs":{},"a":{"docs":{},"s":{"3":{"docs":{},"l":{"docs":{},"t":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}}}},"docs":{}}}},"docs":{}}}}},"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.007518796992481203},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.006756756756756757},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.008368200836820083},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.008902077151335312},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.005252100840336135},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.007518796992481203},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.005791505791505791},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.008368200836820083},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}}},"r":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},",":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}}}},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"g":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}},"c":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":2.004854368932039}}}}}},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"j":{"docs":{},"a":{"docs":{},"c":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}},"w":{"docs":{},"j":{"docs":{},"v":{"docs":{},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"c":{"2":{"docs":{},"g":{"docs":{},"h":{"docs":{},"l":{"5":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"n":{"2":{"docs":{},"l":{"docs":{},"o":{"docs":{},"e":{"docs":{},"o":{"docs":{},"q":{"docs":{},"o":{"docs":{},"y":{"2":{"docs":{},"e":{"6":{"docs":{},"z":{"2":{"docs":{},"v":{"docs":{},"x":{"docs":{},"n":{"docs":{},"u":{"3":{"docs":{},"j":{"docs":{},"e":{"docs":{},"i":{"docs":{},"k":{"6":{"docs":{},"b":{"docs":{},"d":{"docs":{},"g":{"docs":{},"p":{"docs":{},"w":{"docs":{},"n":{"docs":{},"i":{"docs":{},"w":{"3":{"docs":{},"a":{"docs":{},"x":{"docs":{},"f":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}}}}}},"g":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},"s":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},".":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},"!":{"docs":{},"\"":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}},"o":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}},"t":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.013333333333333334},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.01},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.010166358595194085}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975}}}}}}}},"y":{"docs":{},"o":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},"t":{"docs":{},"h":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}}}}},"i":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"e":{"docs":{},",":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}}}}}},"c":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}},"d":{"docs":{},"/":{"docs":{},"o":{"docs":{},"r":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},".":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}}},"s":{"docs":{},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"i":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}},"t":{"docs":{},"i":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}},"a":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},":":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"s":{"docs":{},".":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"i":{"docs":{},"v":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.006507592190889371},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}}}}}},"o":{"docs":{},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}}}}}}}}}}}}}}}}}},"e":{"docs":{},":":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"n":{"docs":{},"โ€™":{"docs":{},"t":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"'":{"docs":{},"t":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}}}}},"g":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"s":{"docs":{},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}}}}}},"s":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"m":{"docs":{},")":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"o":{"docs":{},"r":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}}}}}}}},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}},"i":{"docs":{},"s":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}},"u":{"docs":{},"m":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},":":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.006720430107526882},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":5.014354066985646},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}},"o":{"docs":{},"u":{"docs":{},"s":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{},"s":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{},"(":{"0":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"1":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}},"docs":{}}}}}}},"f":{"docs":{},"u":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}},"g":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"*":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}},".":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462}}}}}},":":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"i":{"docs":{},"i":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}}}}},"k":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"k":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}},"s":{"docs":{},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}},".":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}},"h":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.011450381679389313},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":2.527972027972028},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":2.5054054054054054},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":2.005714285714286},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"s":{"docs":{},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}},",":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.016216216216216217}}}},",":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}},".":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}}}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}},"o":{"docs":{},"p":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}},"e":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},",":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}},"i":{"docs":{},"t":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.024390243902439025},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.02054794520547945},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.025},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.008210180623973728},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.04608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.02727272727272727},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.02097902097902098},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.016216216216216217},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.017543859649122806},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.014336917562724014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.020100502512562814},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.015513126491646777},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.023923444976076555},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.02027027027027027},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.016826923076923076},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.029045643153526972},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.026030368763557483},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.015527950310559006},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.02456140350877193},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.023952095808383235},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.02},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.018633540372670808},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.013054830287206266},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0165016501650165},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.016042780748663103},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.015337423312883436}}}},"y":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}}}}},"m":{"docs":{},"d":{"6":{"4":{"docs":{},".":{"docs":{},"z":{"docs":{},"i":{"docs":{},"p":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}},"/":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"d":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}}}}}},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}},"docs":{}},"docs":{}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},"}":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},":":{"docs":{},"/":{"docs":{},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},".":{"docs":{},">":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013}},",":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006}}}},"a":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"d":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.006578947368421052}}}}}}}},"a":{"docs":{},"l":{"5":{"docs":{},"q":{"2":{"docs":{},"b":{"3":{"docs":{},"s":{"docs":{},"m":{"docs":{},"s":{"docs":{},"o":{"5":{"docs":{},"a":{"docs":{},"s":{"3":{"docs":{},"a":{"docs":{},"p":{"docs":{},"j":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"i":{"docs":{},"k":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"q":{"docs":{},"j":{"docs":{},"p":{"docs":{},"a":{"docs":{},"q":{"7":{"6":{"docs":{},"x":{"docs":{},"e":{"docs":{},"b":{"docs":{},"t":{"docs":{},"v":{"docs":{},"o":{"docs":{},"c":{"docs":{},"q":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{},"g":{"docs":{},"k":{"docs":{},"p":{"3":{"docs":{},"y":{"docs":{},"m":{"docs":{},"g":{"docs":{},"g":{"docs":{},"n":{"4":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}},"b":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.023965141612200435},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142}},"i":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"y":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}}}}}}}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},")":{"docs":{},".":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684}}}},"s":{"docs":{},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}},"s":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":3.3366228070175437},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"d":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},"c":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":10.002242152466367},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":10},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":10.002989536621824},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"s":{"docs":{},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}},"d":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}},"!":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},"r":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.011510791366906475},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}},"n":{"docs":{},"d":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"w":{"docs":{},"i":{"docs":{},"d":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.036036036036036036},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.03571428571428571},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.053691275167785234},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}},".":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}}},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"c":{"docs":{},"a":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"o":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":2.501754385964912},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}},",":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"f":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}}},"v":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}},"i":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},".":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}},"u":{"docs":{},"r":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"o":{"docs":{},"w":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},")":{"docs":{},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"n":{"docs":{},"g":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"i":{"docs":{},"d":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":2.516216216216216},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}},"y":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},":":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"a":{"docs":{},"r":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}},"n":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"c":{"docs":{},"h":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":5.018779342723005}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"k":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.014084507042253521}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.013262599469496022},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.028089887640449437},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}},":":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}},"y":{"docs":{},".":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491}}}}},"t":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.022222222222222223},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"b":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},"o":{"docs":{},"k":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"t":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"n":{"docs":{},"g":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}},"e":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"e":{"docs":{},"w":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},"a":{"docs":{},"k":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.01735357917570499}}}}}},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}},"u":{"docs":{},"s":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"e":{"docs":{},"r":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633}}}}},"f":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.012413793103448275},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":2.057142857142857},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.018518518518518517}},"s":{"docs":{},"/":{"docs":{},")":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"]":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"a":{"docs":{},"f":{"docs":{},"e":{"docs":{},"(":{"1":{"2":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},",":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},")":{"docs":{},";":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334}}}},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"l":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334}}}}}}}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}},"i":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}},"t":{"docs":{},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"s":{"docs":{},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.018656716417910446}}}}}}},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.018656716417910446}}},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}}},"t":{"docs":{},"o":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.011194029850746268}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}}}}},"\"":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491}},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}},".":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"[":{"docs":{},"]":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}},":":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}},"]":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},",":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"}":{"docs":{},",":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},":":{"docs":{},"/":{"docs":{},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"'":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}},"'":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},"p":{"docs":{},"!":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}},"!":{"docs":{},"!":{"docs":{},"!":{"docs":{},"!":{"docs":{},"!":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},"'":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}},"b":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}},"c":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"d":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"i":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}},"'":{"docs":{},")":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}}}}}},"c":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.015781922525107604},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.008244994110718492},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.031007751937984496},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":10.022151898734178},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.021505376344086023},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.024},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.09523809523809523},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.03741496598639456},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.03937007874015748},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.02702702702702703},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.03435114503816794},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.023346303501945526},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.011075949367088608},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.02197802197802198},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.01020408163265306},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.02247191011235955},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.029411764705882353},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.019310344827586208},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.01569506726457399},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.007263922518159807},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.04296875},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.03540903540903541},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.005597014925373134},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.05970149253731343},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.033962264150943396},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.019704433497536946},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.054945054945054944},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.017543859649122806},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.02857142857142857},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.07017543859649122},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.018404907975460124},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.022388059701492536},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00954653937947494},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.01201923076923077},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.014035087719298246},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0213903743315508},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.013440860215053764},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.009202453987730062},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.02},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.05128205128205128},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.035},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.014563106796116505},"developer/streaming/":{"ref":"developer/streaming/","tf":0.010889292196007259},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.018518518518518517},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.07142857142857142},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":5.038359788359788},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":5.041580041580041},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.00831792975970425}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},":":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496}}},",":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"โ€™":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.017142857142857144},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.003968253968253968},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"'":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},")":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"=":{"docs":{},"[":{"1":{"7":{"0":{"1":{"0":{"docs":{},"]":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},",":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612}}}}},"(":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":3.3349753694581277}}}}}}},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}},"c":{"docs":{},"k":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"o":{"docs":{},"u":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.02631578947368421},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"s":{"docs":{},"e":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.024390243902439025},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.02054794520547945},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.005422993492407809},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.014035087719298246},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"d":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}},"\"":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}},".":{"docs":{},".":{"docs":{},"\"":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.016042780748663103},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},"?":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105}},"s":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}},"s":{"docs":{},"p":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}}}}}}}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},".":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}},"n":{"docs":{},"e":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.015}}}},"c":{"docs":{},"k":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}},"u":{"docs":{},"e":{"docs":{},")":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.03225806451612903},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":10.042091836734693},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.06666666666666667},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.05555555555555555},"gateways/":{"ref":"gateways/","tf":0.037037037037037035},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":5.052941176470588},"nats_docker/":{"ref":"nats_docker/","tf":0.02582496413199426},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.05818965517241379},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.07396449704142012},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":5.0150943396226415},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":3.345348120764017}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534}}}},"_":{"1":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}},"2":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}},"docs":{},"a":{"docs":{},"d":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}},"i":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}},"p":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},".":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},")":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"d":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}},";":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"'":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},")":{"docs":{"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464}}},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"]":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}}}}}}},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}},"n":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"a":{"docs":{},"i":{"docs":{},"m":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.006329113924050633},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497}},"s":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}},"s":{"docs":{},"s":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.008064516129032258},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}}},"=":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.010948905109489052},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.03278688524590164},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.007462686567164179},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"s":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"l":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"n":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}},"u":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}},"e":{"docs":{},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}}}}},"x":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}},"i":{"docs":{},"c":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"o":{"docs":{},"n":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"i":{"docs":{},"s":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}},"e":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}},"u":{"docs":{},"t":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}},"e":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.014354066985645933},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.007592190889370932},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":3.3546798029556646},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806}}}}}},"s":{"docs":{},",":{"docs":{"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806}}}},".":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/":{"ref":"developer/","tf":0.03278688524590164},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"r":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},":":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"s":{"docs":{},",":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"u":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.019417475728155338},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"l":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"d":{"docs":{},".":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"t":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}},"s":{"docs":{},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":10.006451612903225},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"r":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"f":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}},"i":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}},"u":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.02867383512544803},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":10.045333333333334},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.047244094488188976},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.01740506329113924},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.013736263736263736},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":10.047619047619047},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/":{"ref":"gateways/","tf":0.013071895424836602},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":10.018567639257295},"leafnodes/":{"ref":"leafnodes/","tf":0.015827338129496403},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":10.02247191011236},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.021897810218978103},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.009655172413793104},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.024390243902439025},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":10.004451038575668},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0234375},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.042105263157894736},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.011554621848739496},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.04},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.03288490284005979},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.017142857142857144},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},",":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"s":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},")":{"docs":{},".":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775}}}}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},".":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}},"r":{"docs":{},"m":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"u":{"docs":{},"s":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}},"n":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.01060070671378092},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.031007751937984496},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.00949367088607595},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.017921146953405017},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.013333333333333334},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.09523809523809523},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.027210884353741496},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.019455252918287938},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.03316326530612245},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.06666666666666667},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.044444444444444446},"gateways/":{"ref":"gateways/","tf":0.0392156862745098},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.03978779840848806},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.01764705882352941},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/":{"ref":"nats_docker/","tf":0.010043041606886656},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.022222222222222223},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.007263922518159807},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.014652014652014652},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.02127659574468085},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01366120218579235},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.007462686567164179},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":10.044776119402986},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":3.430894308943089},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":3.4360730593607305},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":5.0754716981132075},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":3.433333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0375},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.031198686371100164},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.03225806451612903},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.054945054945054944},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.07272727272727272},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.04895104895104895},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.043243243243243246},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.05263157894736842},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.046296296296296294},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.02857142857142857},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":5.017543859649122},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.035842293906810034},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.04522613065326633},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.024539877300613498},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.029850746268656716},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":3.3548130469371515},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.014354066985645933},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.008676789587852495},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.017543859649122806},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.009316770186335404},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":5.042780748663102},"developer/events/events.html":{"ref":"developer/events/events.html","tf":3.3669354838709675},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.013803680981595092},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":2.029126213592233},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":3.4353741496598635},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.017241379310344827},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.031746031746031744},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.016632016632016633},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.029574861367837338}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"?":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}},":":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},",":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},".":{"docs":{},".":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}}}}}}}}},"\"":{"docs":{},")":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}}},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"'":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},".":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},"s":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.02}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.008547008547008548}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663}},"e":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}}}}}}}}}},",":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},":":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},":":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}},"l":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}},"(":{"docs":{},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}}},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},":":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}}}}}}},"z":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"e":{"docs":{},"r":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.010395010395010396}}}}},"s":{"docs":{},"t":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"u":{"docs":{},"m":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":5.042758620689655},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":5.0184049079754605}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"\"":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}}},"?":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"s":{"docs":{},"?":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.019455252918287938}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}},"'":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}},"e":{"docs":{},"d":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},".":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}}}}},"t":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}}},"n":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"i":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612}}}}}},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}}}}}}},"j":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}}}}},"d":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}},"p":{"docs":{},"y":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"i":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988}}}},"r":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},"\"":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"y":{"docs":{},",":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663}}}}}}},"l":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"s":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},".":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.016826923076923076},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"(":{"1":{"0":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}},"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}},"2":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"4":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"docs":{}}}}}}}}}}},".":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"e":{"docs":{},"r":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"r":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"p":{"docs":{},"l":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988}}},".":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},"r":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},"=":{"docs":{},"r":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}},"u":{"docs":{},"m":{"docs":{},"n":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}}},"a":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.011450381679389313},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"c":{"docs":{},"h":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.007668711656441718}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":3.3366336633663365}}}},"d":{"docs":{},"/":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}},"l":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.028169014084507043},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.014553014553014554}},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}},"s":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}},"l":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},"c":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"r":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"y":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}},"v":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164}}},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},"g":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}},"s":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.01735357917570499},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}},"s":{"docs":{},",":{"docs":{"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988}}},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},"e":{"docs":{},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}}}}}}},",":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"l":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.024271844660194174}},".":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}}},"(":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}}}}},":":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}},"'":{"docs":{},"t":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}},"u":{"docs":{},"s":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"t":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"c":{"docs":{},"h":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}}}}}},":":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}}},"r":{"docs":{},"t":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"l":{"docs":{},"i":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}},"i":{"docs":{},"f":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.014336917562724014},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.02040816326530612},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.061068702290076333},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.044444444444444446},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.03932584269662921},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.03125},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.008353221957040573},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542}}}}}}}}}},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}},"\"":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}},"'":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},"e":{"docs":{},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}}}}}}},":":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.03067484662576687}},"e":{"docs":{},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}},"n":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"d":{"docs":{},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},"\\":{"docs":{},"n":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/streaming/":{"ref":"developer/streaming/","tf":0.019963702359346643},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":5.014084507042254},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":3.3703703703703702}},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}},"s":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}}}}}}},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"i":{"docs":{},"n":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.01644736842105263},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005291005291005291},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}},"[":{"docs":{},"]":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749}}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"e":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}},"s":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"n":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}},"c":{"docs":{},"o":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}},"u":{"docs":{},"n":{"docs":{},"k":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.02459016393442623},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.01020408163265306},"gateways/":{"ref":"gateways/","tf":0.006535947712418301},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.012949640287769784},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276},"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.017241379310344827},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.01775147928994083},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.014705882352941176},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.007518796992481203},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.006756756756756757},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.008368200836820083},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.012422360248447204},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}},"o":{"docs":{},"n":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}}},"d":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.010071942446043165},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":3.348258706467661},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496}}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"o":{"docs":{},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198}}}}},"u":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}},"c":{"3":{"2":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}},"docs":{}},"docs":{}},"l":{"docs":{},"f":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.005252100840336135},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}}}}}},"l":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},"v":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"r":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":2.0097087378640777}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}}}}}}}},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"p":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}},"u":{"docs":{},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}}}},"i":{"docs":{},"d":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}},":":{"1":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.013605442176870748}}},"7":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}},"p":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}},"_":{"docs":{},"s":{"docs":{},"u":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}},"y":{"docs":{},"p":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},":":{"docs":{},"/":{"docs":{},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{},"+":{"docs":{},"c":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}},"x":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}}}}}},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.014563106796116505}}},":":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"d":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.017777777777777778},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"v":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}},"b":{"docs":{},"=":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}}}},"c":{"docs":{},"b":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},")":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},":":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}}}}},"#":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"d":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.006377551020408163},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.01568627450980392},"nats_docker/":{"ref":"nats_docker/","tf":0.015781922525107604},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.02631578947368421},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.009655172413793104},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.03508771929824561},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":5.008982035928144},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":3.345333333333333},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.010395010395010396},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}},"\"":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414}}}}}}}}}},"=":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}},"e":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"/":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},"e":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}}},"\"":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.01735357917570499}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}},";":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}}}}}}}}},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.015789473684210527}}}}}},"s":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007}}}}}}}}},"g":{"0":{"docs":{},"h":{"docs":{},"t":{"docs":{},"x":{"docs":{},"l":{"4":{"docs":{},"r":{"docs":{},"g":{"docs":{},"g":{"7":{"docs":{},"d":{"docs":{},"x":{"docs":{},"d":{"docs":{},"a":{"docs":{},"j":{"docs":{},"w":{"docs":{},"b":{"docs":{},"c":{"8":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}},"docs":{}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}},"docs":{}},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005}}}}},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}}},"n":{"docs":{},"c":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}}},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.011210762331838564},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}},"y":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}},")":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"s":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}},"e":{"docs":{},"g":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"t":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"a":{"docs":{},"y":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}},"s":{"docs":{},"]":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}},"v":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.039473684210526314},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/":{"ref":"developer/","tf":0.03278688524590164},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":5.004158004158004}}}}}},"i":{"docs":{},"s":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"c":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"a":{"docs":{},"s":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}},"d":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}},"i":{"docs":{},"d":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}}}}},"f":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.006720430107526882},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0063025210084033615},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":3.349593495934959},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491}}},"_":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242}}}}}}}}}},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}},"i":{"docs":{},"t":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"r":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}}},"m":{"docs":{},"o":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":5.006896551724138},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.020689655172413793},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}},":":{"4":{"2":{"2":{"2":{"docs":{"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358}},".":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}},"p":{"docs":{},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},".":{"docs":{"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.007352941176470588},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.005639097744360902},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}},"p":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.021505376344086023},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.014652014652014652},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.008968609865470852},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.00831792975970425}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"b":{"docs":{},"u":{"docs":{},"g":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.01824817518248175},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},",":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}},"a":{"docs":{},"l":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759}},"e":{"docs":{},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"s":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}},"c":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.008275862068965517},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.009202453987730062}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242}},"a":{"docs":{},"l":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},"y":{"docs":{},":":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}},"e":{"docs":{},"p":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"r":{"docs":{},"e":{"docs":{},"k":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.008714596949891068},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{"gateways/":{"ref":"gateways/","tf":0.013071895424836602},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"!":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":2.5},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.047619047619047616},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.008316008316008316}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"s":{"docs":{},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"e":{"docs":{},"d":{"docs":{},"!":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}},"\"":{"docs":{},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},",":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},"=":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{},",":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},".":{"docs":{"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"/":{"docs":{},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}}}}}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":5.036363636363636},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.005597014925373134}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}}}}}}}},"r":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},";":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}},",":{"docs":{"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334}}},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426}}}},"i":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.02666666666666667},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},"l":{"docs":{},"i":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"y":{"docs":{},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}},"=":{"docs":{},"\"":{"docs":{},"b":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}}}}}}}}},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}}},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}}}},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}},"a":{"docs":{},"l":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}},"e":{"docs":{},"r":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":2.0145631067961167}}}}}}},"m":{"docs":{},"z":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"o":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}},"c":{"docs":{"developer/":{"ref":"developer/","tf":0.03278688524590164}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.023255813953488372},"nats_docker/":{"ref":"nats_docker/","tf":5.0344332855093255},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.05555555555555555},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":5.019396551724138},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.007263922518159807},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":5.014792899408284}},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}},".":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},",":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}},",":{"docs":{"developer/":{"ref":"developer/","tf":0.03278688524590164}}}},"w":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}},"s":{"docs":{},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}}}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},".":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"e":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.016260162601626018},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"docs":{}}}}}}},"โ€™":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"t":{"docs":{},"_":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}}}},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}},"โ€™":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811}}}}}}},":":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}},"t":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}},"x":{"docs":{},"y":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}}}},"s":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":2.542105263157895}},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}},"_":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"]":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}},".":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.012269938650306749}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"r":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}},"u":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198}}}}}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"docs":{}}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.011210762331838564},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/streaming/":{"ref":"developer/streaming/","tf":0.009074410163339383},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":5.119047619047619}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}}}}}},"=":{"docs":{},"[":{"docs":{},"]":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}},"/":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}}}}},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}}}}}}}},"e":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":2.0114285714285716},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"c":{"docs":{},"k":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.016260162601626018}}}},"e":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"v":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.014598540145985401},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}},"n":{"docs":{},"s":{"docs":{},":":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},".":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"*":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}},">":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"1":{"docs":{},"_":{"0":{"0":{"0":{"docs":{},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786}}}},",":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"(":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}},"a":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"i":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}},",":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}},"y":{"docs":{},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}},"c":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.006329113924050633},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"gateways/":{"ref":"gateways/","tf":0.008714596949891068},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}}}},"r":{"docs":{},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}}}},"r":{"docs":{},")":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}},"y":{"docs":{},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}},"d":{"2":{"5":{"5":{"1":{"9":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}},"i":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.00697350069735007}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"sys_accounts/":{"ref":"sys_accounts/","tf":0.08},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":3.3611111111111107},"developer/events/events.html":{"ref":"developer/events/events.html","tf":3.3494623655913975}},"s":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}}}}}}}}}}}},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}},"u":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"l":{"docs":{},"i":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}},"r":{"docs":{},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}}},"x":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},"a":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}},"n":{"docs":{},"d":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}},"s":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"s":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198}}}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.014792899408284023},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.017341040462427744},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.029850746268656716},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.009316770186335404},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.011111111111111112},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.00831792975970425}},"e":{"docs":{},",":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219}}}}}}}},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.011655011655011656},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01092896174863388},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},")":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},".":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}},"e":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"p":{"docs":{},"t":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.010739856801909307},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},"o":{"docs":{},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},",":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}},"p":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},"s":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154}}}}}}},"r":{"docs":{},"i":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}},"e":{"docs":{},",":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"r":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":3.335555555555555},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":3.35042735042735},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":3.338333333333333},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"l":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}},"e":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.020569620253164556},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.02725563909774436},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.021235521235521235},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131}},":":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"s":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},",":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}},"s":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"i":{"docs":{},"r":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.006578947368421052},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.006756756756756757},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"e":{"docs":{},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"s":{"docs":{},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"d":{"docs":{},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}},")":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},".":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.017921146953405017},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":5.003401360544218},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.010948905109489052},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},")":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198}}}}},"n":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":3.3357199681782017}}}}}},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}},"d":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.016666666666666666},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.015},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.014778325123152709},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.013888888888888888},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.02867383512544803},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.013126491646778043},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.006507592190889371},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.010526315789473684},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0213903743315508},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.008064516129032258},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.02097902097902098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993}}},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"s":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},",":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}},"'":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},"t":{"docs":{},"i":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}},"t":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.00949367088607595},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"y":{"docs":{},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}}}}},"r":{"docs":{},"i":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}},",":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}},"e":{"docs":{},"r":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}},"v":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},"i":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"s":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}}}}}},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}}}}}},"p":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},"i":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"t":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}}}}}}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},".":{"docs":{},".":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"r":{"docs":{},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.016260162601626018},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.016666666666666666},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.014336917562724014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.020100502512562814},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.024539877300613498},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.040268456375838924},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.019138755980861243},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.02403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.024896265560165973},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.015184381778741865},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.012422360248447204},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.008771929824561403},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.017964071856287425},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.02666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.024844720496894408},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.031331592689295036},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.019801980198019802},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.024},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.006720430107526882},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.015337423312883436},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.014563106796116505},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.04225352112676056},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.037037037037037035},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.012566137566137565},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.010166358595194085}},"o":{"docs":{},"r":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.013793103448275862},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.013431013431013432},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.009408602150537635},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.005545286506469501}},"s":{"docs":{},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},")":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},"{":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"'":{"docs":{},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"(":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"=":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},")":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},";":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506}}}},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}},"c":{"docs":{},"h":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.011450381679389313}},":":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"k":{"docs":{},"@":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}},"b":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}},"e":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01953125},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"s":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"i":{"docs":{},"t":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"0":{"docs":{},".":{"1":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}},"docs":{}}},"1":{"docs":{},")":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}},"docs":{}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"2":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"5":{"docs":{},")":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}},"docs":{}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"l":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"y":{"docs":{},"/":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"g":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}},"y":{"docs":{},"j":{"0":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"q":{"docs":{},"d":{"3":{"docs":{},"q":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"h":{"docs":{},"b":{"docs":{},"g":{"docs":{},"c":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"l":{"docs":{},"z":{"docs":{},"d":{"docs":{},"i":{"1":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"5":{"docs":{},"i":{"docs":{},"n":{"0":{"docs":{},".":{"docs":{},"e":{"docs":{},"y":{"docs":{},"j":{"docs":{},"q":{"docs":{},"d":{"docs":{},"g":{"docs":{},"k":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"v":{"docs":{},"s":{"docs":{},"k":{"9":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"v":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"v":{"docs":{},"f":{"docs":{},"t":{"docs":{},"v":{"docs":{},"z":{"docs":{},"x":{"docs":{},"q":{"docs":{},"v":{"docs":{},"p":{"docs":{},"v":{"docs":{},"t":{"0":{"docs":{},"e":{"2":{"docs":{},"v":{"docs":{},"l":{"docs":{},"e":{"1":{"docs":{},"u":{"docs":{},"v":{"docs":{},"q":{"0":{"docs":{},"u":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"v":{"0":{"8":{"1":{"docs":{},"w":{"docs":{},"k":{"docs":{},"t":{"docs":{},"d":{"docs":{},"w":{"docs":{},"l":{"docs":{},"b":{"docs":{},"l":{"docs":{},"v":{"docs":{},"f":{"docs":{},"b":{"docs":{},"j":{"docs":{},"q":{"docs":{},"v":{"docs":{},"p":{"docs":{},"l":{"docs":{},"s":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"j":{"docs":{},"g":{"docs":{},"n":{"docs":{},"v":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"a":{"docs":{},"w":{"docs":{},"f":{"0":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"2":{"docs":{},"o":{"docs":{},"d":{"docs":{},"m":{"1":{"docs":{},"m":{"docs":{},"z":{"docs":{},"u":{"4":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"p":{"docs":{},"c":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"b":{"docs":{},"r":{"docs":{},"d":{"docs":{},"u":{"3":{"docs":{},"t":{"docs":{},"u":{"docs":{},"z":{"docs":{},"o":{"docs":{},"q":{"docs":{},"k":{"docs":{},"l":{"docs":{},"l":{"docs":{},"t":{"docs":{},"z":{"docs":{},"n":{"docs":{},"b":{"docs":{},"r":{"docs":{},"f":{"docs":{},"u":{"2":{"docs":{},"v":{"docs":{},"k":{"docs":{},"t":{"docs":{},"m":{"docs":{},"r":{"docs":{},"k":{"docs":{},"v":{"docs":{},"y":{"docs":{},"q":{"docs":{},"l":{"docs":{},"b":{"docs":{},"v":{"docs":{},"q":{"docs":{},"j":{"docs":{},"d":{"docs":{},"f":{"docs":{},"w":{"docs":{},"l":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"0":{"docs":{},"t":{"docs":{},"v":{"docs":{},"u":{"docs":{},"d":{"docs":{},"d":{"docs":{},"z":{"docs":{},"t":{"docs":{},"z":{"docs":{},"n":{"docs":{},"w":{"docs":{},"v":{"docs":{},"u":{"docs":{},"f":{"docs":{},"j":{"docs":{},"t":{"docs":{},"u":{"docs":{},"l":{"docs":{},"b":{"docs":{},"w":{"docs":{},"u":{"docs":{},"p":{"docs":{},"v":{"docs":{},"n":{"docs":{},"e":{"1":{"docs":{},"e":{"docs":{},"m":{"0":{"docs":{},"n":{"docs":{},"d":{"docs":{},"u":{"docs":{},"i":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"b":{"docs":{},"w":{"docs":{},"u":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"s":{"docs":{},"z":{"docs":{},"w":{"docs":{},"f":{"docs":{},"m":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"c":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"e":{"docs":{},"m":{"docs":{},"l":{"docs":{},"p":{"docs":{},"s":{"docs":{},"v":{"docs":{},"u":{"docs":{},"s":{"1":{"docs":{},"u":{"docs":{},"e":{"8":{"docs":{},"y":{"docs":{},"m":{"docs":{},"k":{"0":{"2":{"docs":{},"m":{"docs":{},"l":{"docs":{},"n":{"docs":{},"w":{"docs":{},"v":{"docs":{},"t":{"docs":{},"z":{"docs":{},"i":{"docs":{},"t":{"docs":{},"z":{"docs":{},"z":{"docs":{},"j":{"docs":{},"s":{"0":{"1":{"docs":{},"b":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"j":{"docs":{},"y":{"docs":{},"v":{"docs":{},"v":{"docs":{},"v":{"docs":{},"g":{"docs":{},"w":{"docs":{},"d":{"docs":{},"r":{"docs":{},"r":{"docs":{},"u":{"1":{"docs":{},"v":{"docs":{},"t":{"docs":{},"w":{"docs":{},"f":{"docs":{},"d":{"docs":{},"r":{"docs":{},"s":{"docs":{},"d":{"docs":{},"r":{"docs":{},"h":{"docs":{},"u":{"1":{"docs":{},"y":{"3":{"docs":{},"r":{"docs":{},"d":{"docs":{},"d":{"docs":{},"x":{"docs":{},"v":{"docs":{},"z":{"docs":{},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"0":{"docs":{},"e":{"docs":{},"x":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},"x":{"docs":{},"n":{"docs":{},"l":{"docs":{},"c":{"docs":{},"i":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"d":{"docs":{},"h":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{},"h":{"docs":{},"v":{"docs":{},"i":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"7":{"docs":{},"i":{"docs":{},"m":{"docs":{},"f":{"docs":{},"s":{"docs":{},"b":{"docs":{},"g":{"9":{"3":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"m":{"docs":{},"z":{"docs":{},"v":{"docs":{},"b":{"docs":{},"y":{"docs":{},"j":{"docs":{},"d":{"docs":{},"f":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"c":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"7":{"docs":{},"i":{"docs":{},"m":{"docs":{},"f":{"docs":{},"s":{"docs":{},"b":{"docs":{},"g":{"9":{"3":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"m":{"docs":{},"j":{"docs":{},"h":{"docs":{},"c":{"docs":{},"i":{"docs":{},"j":{"docs":{},"d":{"docs":{},"f":{"docs":{},"x":{"1":{"9":{"docs":{},".":{"docs":{},"i":{"docs":{},"e":{"docs":{},"q":{"docs":{},"s":{"docs":{},"y":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"q":{"docs":{},"m":{"docs":{},"h":{"3":{"docs":{},"i":{"docs":{},"h":{"docs":{},"_":{"0":{"docs":{},"g":{"8":{"docs":{},"l":{"docs":{},"l":{"docs":{},"x":{"docs":{},"o":{"docs":{},"x":{"docs":{},"e":{"0":{"docs":{},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"p":{"docs":{},"x":{"docs":{},"t":{"docs":{},"m":{"3":{"docs":{},"b":{"docs":{},"_":{"docs":{},"y":{"docs":{},"s":{"docs":{},"_":{"docs":{},"x":{"docs":{},"w":{"docs":{},"l":{"9":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"i":{"docs":{},"w":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"w":{"docs":{},"t":{"docs":{},"l":{"docs":{},"q":{"docs":{},"z":{"docs":{},"w":{"docs":{},"t":{"docs":{},"m":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"v":{"docs":{},"g":{"docs":{},"t":{"docs":{},"l":{"docs":{},"r":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"w":{"docs":{},"t":{"docs":{},"d":{"docs":{},"z":{"docs":{},"q":{"docs":{},"s":{"docs":{},"u":{"5":{"docs":{},"f":{"docs":{},"s":{"docs":{},"k":{"5":{"docs":{},"o":{"docs":{},"w":{"docs":{},"j":{"docs":{},"z":{"docs":{},"a":{"docs":{},"m":{"docs":{},"k":{"docs":{},"j":{"docs":{},"h":{"docs":{},"r":{"0":{"docs":{},"v":{"docs":{},"k":{"docs":{},"m":{"docs":{},"l":{"docs":{},"f":{"docs":{},"x":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"z":{"docs":{},"v":{"docs":{},"f":{"docs":{},"b":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"0":{"docs":{},"s":{"0":{"docs":{},"j":{"docs":{},"s":{"docs":{},"r":{"0":{"docs":{},"h":{"docs":{},"r":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"a":{"docs":{},"w":{"docs":{},"f":{"0":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"2":{"docs":{},"m":{"docs":{},"j":{"docs":{},"i":{"5":{"docs":{},"n":{"docs":{},"d":{"docs":{},"k":{"0":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"p":{"docs":{},"c":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"b":{"docs":{},"q":{"docs":{},"z":{"docs":{},"d":{"docs":{},"q":{"docs":{},"t":{"docs":{},"z":{"docs":{},"n":{"docs":{},"n":{"docs":{},"u":{"docs":{},"k":{"docs":{},"v":{"docs":{},"w":{"docs":{},"m":{"docs":{},"j":{"docs":{},"z":{"docs":{},"v":{"docs":{},"m":{"0":{"docs":{},"x":{"docs":{},"g":{"docs":{},"w":{"docs":{},"k":{"docs":{},"z":{"docs":{},"q":{"docs":{},"n":{"docs":{},"u":{"docs":{},"j":{"docs":{},"o":{"docs":{},"m":{"0":{"docs":{},"h":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"y":{"docs":{},"w":{"docs":{},"d":{"docs":{},"n":{"docs":{},"q":{"docs":{},"s":{"0":{"docs":{},"x":{"docs":{},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{},"z":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"f":{"docs":{},"f":{"docs":{},"v":{"docs":{},"e":{"docs":{},"x":{"docs":{},"f":{"docs":{},"s":{"docs":{},"f":{"docs":{},"d":{"docs":{},"q":{"docs":{},"u":{"docs":{},"u":{"docs":{},"v":{"docs":{},"v":{"docs":{},"r":{"docs":{},"z":{"docs":{},"d":{"docs":{},"f":{"docs":{},"s":{"docs":{},"l":{"docs":{},"k":{"0":{"docs":{},"s":{"docs":{},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"b":{"docs":{},"w":{"docs":{},"u":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"h":{"docs":{},"l":{"docs":{},"m":{"docs":{},"i":{"docs":{},"u":{"docs":{},"y":{"docs":{},"y":{"5":{"docs":{},"k":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"c":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"f":{"docs":{},"m":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"y":{"docs":{},"q":{"docs":{},"j":{"docs":{},"n":{"docs":{},"t":{"docs":{},"t":{"docs":{},"v":{"docs":{},"n":{"docs":{},"p":{"docs":{},"n":{"docs":{},"u":{"docs":{},"f":{"docs":{},"t":{"docs":{},"m":{"0":{"docs":{},"f":{"docs":{},"q":{"docs":{},"s":{"docs":{},"k":{"docs":{},"z":{"docs":{},"v":{"docs":{},"t":{"docs":{},"k":{"docs":{},"f":{"docs":{},"j":{"docs":{},"s":{"1":{"docs":{},"v":{"docs":{},"d":{"docs":{},"r":{"docs":{},"v":{"docs":{},"f":{"docs":{},"k":{"docs":{},"u":{"docs":{},"e":{"docs":{},"f":{"docs":{},"r":{"docs":{},"n":{"docs":{},"z":{"docs":{},"z":{"docs":{},"y":{"docs":{},"r":{"docs":{},"u":{"docs":{},"j":{"docs":{},"u":{"docs":{},"v":{"docs":{},"k":{"9":{"docs":{},"d":{"docs":{},"u":{"docs":{},"u":{"docs":{},"n":{"docs":{},"y":{"docs":{},"w":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{},"n":{"docs":{},"z":{"docs":{},"t":{"docs":{},"u":{"docs":{},"d":{"docs":{},"h":{"docs":{},"t":{"docs":{},"j":{"docs":{},"q":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"0":{"docs":{},"e":{"docs":{},"x":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"y":{"docs":{},"w":{"docs":{},"n":{"0":{"docs":{},"a":{"docs":{},"x":{"docs":{},"z":{"docs":{},"h":{"docs":{},"d":{"docs":{},"g":{"docs":{},"l":{"docs":{},"v":{"docs":{},"b":{"docs":{},"i":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"d":{"docs":{},"h":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"a":{"docs":{},"m":{"docs":{},"v":{"docs":{},"j":{"docs":{},"d":{"docs":{},"c":{"docs":{},"i":{"6":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"u":{"docs":{},"y":{"docs":{},"i":{"5":{"docs":{},"j":{"docs":{},"l":{"docs":{},"m":{"docs":{},"q":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"0":{"docs":{},"e":{"docs":{},"x":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"c":{"3":{"docs":{},"r":{"docs":{},"y":{"docs":{},"z":{"docs":{},"w":{"docs":{},"f":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"1":{"9":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"0":{"docs":{},"w":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"v":{"docs":{},"v":{"docs":{},"d":{"docs":{},"m":{"docs":{},"t":{"docs":{},"k":{"docs":{},"x":{"docs":{},"p":{"docs":{},"v":{"docs":{},"e":{"8":{"1":{"docs":{},"t":{"docs":{},"j":{"docs":{},"v":{"docs":{},"v":{"docs":{},"r":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"k":{"docs":{},"v":{"docs":{},"c":{"docs":{},"q":{"0":{"9":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"i":{"2":{"docs":{},"t":{"docs":{},"u":{"docs":{},"t":{"docs":{},"r":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"0":{"docs":{},"w":{"docs":{},"k":{"docs":{},"v":{"docs":{},"m":{"docs":{},"q":{"docs":{},"t":{"docs":{},"j":{"docs":{},"c":{"docs":{},"u":{"1":{"docs":{},"b":{"docs":{},"l":{"docs":{},"t":{"docs":{},"v":{"docs":{},"h":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"f":{"docs":{},"s":{"docs":{},"w":{"docs":{},"e":{"9":{"docs":{},"b":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"a":{"docs":{},"w":{"docs":{},"f":{"0":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"2":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{},"w":{"docs":{},"m":{"docs":{},"d":{"docs":{},"c":{"docs":{},"z":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"p":{"docs":{},"c":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"b":{"docs":{},"q":{"docs":{},"z":{"docs":{},"d":{"docs":{},"q":{"docs":{},"t":{"docs":{},"z":{"docs":{},"n":{"docs":{},"n":{"docs":{},"u":{"docs":{},"k":{"docs":{},"v":{"docs":{},"w":{"docs":{},"m":{"docs":{},"j":{"docs":{},"z":{"docs":{},"v":{"docs":{},"m":{"0":{"docs":{},"x":{"docs":{},"g":{"docs":{},"w":{"docs":{},"k":{"docs":{},"z":{"docs":{},"q":{"docs":{},"n":{"docs":{},"u":{"docs":{},"j":{"docs":{},"o":{"docs":{},"m":{"0":{"docs":{},"h":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"y":{"docs":{},"w":{"docs":{},"d":{"docs":{},"n":{"docs":{},"q":{"docs":{},"s":{"0":{"docs":{},"x":{"docs":{},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{},"z":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"f":{"docs":{},"f":{"docs":{},"v":{"docs":{},"e":{"docs":{},"x":{"docs":{},"f":{"docs":{},"s":{"docs":{},"f":{"docs":{},"d":{"docs":{},"q":{"docs":{},"u":{"docs":{},"u":{"docs":{},"v":{"docs":{},"v":{"docs":{},"r":{"docs":{},"z":{"docs":{},"d":{"docs":{},"f":{"docs":{},"s":{"docs":{},"l":{"docs":{},"k":{"0":{"docs":{},"s":{"docs":{},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"b":{"docs":{},"w":{"docs":{},"u":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"z":{"docs":{},"w":{"docs":{},"x":{"docs":{},"w":{"docs":{},"l":{"docs":{},"k":{"docs":{},"f":{"docs":{},"b":{"docs":{},"t":{"docs":{},"d":{"docs":{},"v":{"docs":{},"r":{"docs":{},"m":{"docs":{},"k":{"docs":{},"i":{"docs":{},"z":{"docs":{},"u":{"0":{"0":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"z":{"docs":{},"d":{"docs":{},"w":{"docs":{},"i":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"b":{"docs":{},"q":{"docs":{},"u":{"docs":{},"w":{"1":{"docs":{},"u":{"docs":{},"t":{"docs":{},"j":{"docs":{},"c":{"docs":{},"m":{"1":{"docs":{},"n":{"docs":{},"n":{"docs":{},"u":{"0":{"8":{"1":{"docs":{},"q":{"docs":{},"v":{"docs":{},"m":{"docs":{},"z":{"docs":{},"q":{"docs":{},"v":{"docs":{},"b":{"docs":{},"k":{"docs":{},"r":{"docs":{},"l":{"docs":{},"v":{"docs":{},"o":{"docs":{},"q":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"v":{"docs":{},"u":{"docs":{},"n":{"docs":{},"f":{"docs":{},"u":{"docs":{},"u":{"docs":{},"p":{"docs":{},"q":{"docs":{},"q":{"docs":{},"v":{"docs":{},"e":{"3":{"docs":{},"n":{"docs":{},"l":{"docs":{},"h":{"docs":{},"f":{"docs":{},"q":{"docs":{},"l":{"docs":{},"r":{"docs":{},"w":{"docs":{},"t":{"0":{"docs":{},"n":{"docs":{},"r":{"docs":{},"q":{"1":{"docs":{},"h":{"docs":{},"y":{"docs":{},"r":{"0":{"docs":{},"t":{"docs":{},"q":{"docs":{},"m":{"1":{"docs":{},"l":{"docs":{},"n":{"docs":{},"r":{"0":{"docs":{},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"r":{"5":{"docs":{},"c":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"h":{"docs":{},"y":{"3":{"docs":{},"r":{"docs":{},"p":{"docs":{},"d":{"docs":{},"m":{"docs":{},"f":{"0":{"docs":{},"a":{"docs":{},"w":{"9":{"docs":{},"u":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"b":{"docs":{},"m":{"docs":{},"f":{"0":{"docs":{},"c":{"docs":{},"y":{"docs":{},"i":{"6":{"docs":{},"e":{"docs":{},"y":{"docs":{},"j":{"docs":{},"z":{"docs":{},"d":{"docs":{},"w":{"docs":{},"j":{"docs":{},"q":{"docs":{},"z":{"docs":{},"w":{"docs":{},"n":{"0":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"a":{"docs":{},"g":{"docs":{},"v":{"docs":{},"s":{"docs":{},"c":{"docs":{},"c":{"5":{"docs":{},"b":{"docs":{},"q":{"docs":{},"u":{"docs":{},"w":{"1":{"docs":{},"u":{"docs":{},"t":{"docs":{},"j":{"docs":{},"c":{"docs":{},"m":{"1":{"docs":{},"n":{"docs":{},"n":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"d":{"docs":{},"h":{"docs":{},"l":{"docs":{},"w":{"docs":{},"z":{"docs":{},"s":{"docs":{},"i":{"6":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"docs":{},"l":{"docs":{},"c":{"docs":{},"n":{"docs":{},"z":{"docs":{},"p":{"docs":{},"y":{"2":{"docs":{},"u":{"docs":{},"i":{"docs":{},"f":{"docs":{},"x":{"0":{"docs":{},".":{"docs":{},"v":{"docs":{},"f":{"docs":{},"y":{"docs":{},"h":{"docs":{},"p":{"docs":{},"a":{"0":{"docs":{},"e":{"6":{"7":{"docs":{},"r":{"docs":{},"f":{"docs":{},"r":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"p":{"docs":{},"m":{"docs":{},"k":{"5":{"docs":{},"b":{"docs":{},"m":{"docs":{},"k":{"docs":{},"n":{"docs":{},"a":{"docs":{},"q":{"1":{"docs":{},"z":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"q":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"v":{"docs":{},"c":{"docs":{},"q":{"docs":{},"k":{"docs":{},"n":{"docs":{},"d":{"docs":{},"v":{"docs":{},"u":{"docs":{},"f":{"docs":{},"h":{"docs":{},"t":{"docs":{},"e":{"docs":{},"z":{"docs":{},"a":{"docs":{},"w":{"docs":{},"f":{"docs":{},"j":{"docs":{},"p":{"docs":{},"t":{"docs":{},"t":{"docs":{},"d":{"docs":{},"k":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"1":{"docs":{},"q":{"1":{"docs":{},"z":{"docs":{},"x":{"docs":{},"r":{"docs":{},"d":{"docs":{},"z":{"docs":{},"m":{"docs":{},"v":{"docs":{},"l":{"docs":{},"p":{"docs":{},"p":{"docs":{},"v":{"docs":{},"u":{"9":{"docs":{},"t":{"docs":{},"u":{"docs":{},"e":{"docs":{},"x":{"docs":{},"d":{"docs":{},"s":{"0":{"docs":{},"d":{"docs":{},"b":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"a":{"docs":{},"w":{"docs":{},"f":{"0":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"2":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"z":{"docs":{},"n":{"docs":{},"t":{"docs":{},"y":{"docs":{},"z":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"p":{"docs":{},"c":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"docs":{},"q":{"docs":{},"k":{"docs":{},"s":{"3":{"docs":{},"m":{"0":{"9":{"docs":{},"m":{"docs":{},"u":{"docs":{},"u":{"9":{"docs":{},"k":{"docs":{},"v":{"0":{"5":{"docs":{},"z":{"docs":{},"v":{"docs":{},"e":{"4":{"docs":{},"y":{"docs":{},"t":{"docs":{},"z":{"docs":{},"q":{"2":{"docs":{},"s":{"docs":{},"v":{"docs":{},"p":{"docs":{},"r":{"docs":{},"t":{"docs":{},"j":{"docs":{},"r":{"docs":{},"x":{"docs":{},"t":{"docs":{},"v":{"docs":{},"n":{"docs":{},"d":{"docs":{},"n":{"0":{"docs":{},"h":{"docs":{},"w":{"docs":{},"v":{"docs":{},"k":{"5":{"docs":{},"b":{"docs":{},"m":{"1":{"docs":{},"k":{"2":{"docs":{},"v":{"docs":{},"f":{"docs":{},"d":{"docs":{},"q":{"docs":{},"v":{"0":{"docs":{},"t":{"docs":{},"d":{"docs":{},"r":{"docs":{},"l":{"docs":{},"h":{"docs":{},"j":{"docs":{},"v":{"1":{"docs":{},"m":{"docs":{},"z":{"docs":{},"w":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"q":{"docs":{},"v":{"docs":{},"v":{"docs":{},"j":{"docs":{},"u":{"docs":{},"y":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"b":{"docs":{},"w":{"docs":{},"u":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"docs":{},"m":{"docs":{},"i":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"1":{"docs":{},"y":{"docs":{},"i":{"docs":{},"i":{"6":{"docs":{},"i":{"docs":{},"k":{"9":{"docs":{},"c":{"docs":{},"s":{"docs":{},"z":{"docs":{},"c":{"docs":{},"z":{"docs":{},"t":{"0":{"docs":{},"x":{"docs":{},"r":{"docs":{},"t":{"0":{"docs":{},"p":{"docs":{},"x":{"docs":{},"t":{"docs":{},"l":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{},"j":{"docs":{},"j":{"docs":{},"p":{"docs":{},"n":{"docs":{},"d":{"docs":{},"z":{"docs":{},"j":{"docs":{},"w":{"docs":{},"l":{"docs":{},"f":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"d":{"docs":{},"n":{"docs":{},"u":{"0":{"docs":{},"m":{"3":{"docs":{},"s":{"docs":{},"f":{"docs":{},"z":{"docs":{},"w":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"z":{"docs":{},"w":{"docs":{},"t":{"docs":{},"z":{"docs":{},"u":{"docs":{},"v":{"1":{"docs":{},"b":{"docs":{},"x":{"docs":{},"s":{"0":{"docs":{},"n":{"docs":{},"g":{"docs":{},"w":{"docs":{},"e":{"docs":{},"l":{"docs":{},"x":{"docs":{},"u":{"docs":{},"z":{"docs":{},"n":{"docs":{},"y":{"docs":{},"t":{"docs":{},"f":{"docs":{},"n":{"docs":{},"b":{"docs":{},"v":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"d":{"docs":{},"h":{"docs":{},"l":{"docs":{},"w":{"docs":{},"z":{"docs":{},"s":{"docs":{},"i":{"6":{"docs":{},"i":{"docs":{},"m":{"9":{"docs":{},"w":{"docs":{},"z":{"docs":{},"x":{"docs":{},"j":{"docs":{},"h":{"docs":{},"d":{"docs":{},"g":{"9":{"docs":{},"y":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"b":{"docs":{},"m":{"docs":{},"f":{"0":{"docs":{},"c":{"docs":{},"y":{"docs":{},"i":{"6":{"docs":{},"e":{"docs":{},"y":{"docs":{},"j":{"docs":{},"z":{"docs":{},"a":{"docs":{},"w":{"docs":{},"d":{"docs":{},"u":{"docs":{},"a":{"docs":{},"w":{"5":{"docs":{},"n":{"docs":{},"x":{"2":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"l":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"0":{"docs":{},"r":{"docs":{},"n":{"docs":{},"w":{"docs":{},"u":{"docs":{},"n":{"docs":{},"j":{"docs":{},"n":{"docs":{},"v":{"docs":{},"r":{"docs":{},"t":{"docs":{},"w":{"docs":{},"l":{"docs":{},"k":{"2":{"docs":{},"t":{"docs":{},"u":{"docs":{},"z":{"docs":{},"m":{"docs":{},"t":{"0":{"docs":{},"j":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"j":{"docs":{},"s":{"docs":{},"t":{"docs":{},"l":{"docs":{},"j":{"docs":{},"c":{"docs":{},"u":{"docs":{},"k":{"docs":{},"f":{"docs":{},"y":{"docs":{},"u":{"docs":{},"k":{"docs":{},"t":{"docs":{},"k":{"docs":{},"s":{"0":{"docs":{},"f":{"docs":{},"d":{"docs":{},"n":{"docs":{},"v":{"docs":{},"v":{"docs":{},"b":{"docs":{},"q":{"1":{"docs":{},"j":{"docs":{},"d":{"docs":{},"n":{"docs":{},"k":{"docs":{},"g":{"2":{"docs":{},"q":{"0":{"docs":{},"p":{"docs":{},"y":{"docs":{},"q":{"0":{"docs":{},"x":{"docs":{},"s":{"docs":{},"m":{"docs":{},"l":{"docs":{},"n":{"docs":{},"u":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"q":{"docs":{},"v":{"docs":{},"e":{"docs":{},"i":{"docs":{},"x":{"docs":{},"x":{"1":{"9":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}},"docs":{}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}}},"docs":{}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}},"r":{"docs":{},"f":{"docs":{},"h":{"docs":{},"j":{"docs":{},"s":{"docs":{},"v":{"docs":{},"i":{"2":{"docs":{},"w":{"docs":{},"l":{"docs":{},"g":{"1":{"docs":{},"q":{"1":{"docs":{},"a":{"docs":{},"z":{"docs":{},"m":{"docs":{},"l":{"docs":{},"f":{"docs":{},"j":{"docs":{},"t":{"docs":{},"f":{"docs":{},"c":{"docs":{},"z":{"docs":{},"w":{"docs":{},"f":{"docs":{},"b":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"s":{"docs":{},"d":{"docs":{},"y":{"docs":{},"z":{"docs":{},"u":{"docs":{},"f":{"docs":{},"n":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"z":{"docs":{},"h":{"docs":{},"u":{"docs":{},"k":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"0":{"5":{"docs":{},"d":{"docs":{},"r":{"1":{"docs":{},"r":{"docs":{},"l":{"docs":{},"v":{"docs":{},"v":{"docs":{},"b":{"docs":{},"i":{"docs":{},"s":{"docs":{},"l":{"docs":{},"r":{"docs":{},"l":{"docs":{},"q":{"0":{"docs":{},"j":{"docs":{},"b":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"a":{"docs":{},"w":{"docs":{},"f":{"0":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"2":{"docs":{},"n":{"docs":{},"j":{"docs":{},"u":{"1":{"docs":{},"n":{"docs":{},"j":{"docs":{},"k":{"0":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"p":{"docs":{},"c":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"docs":{},"r":{"docs":{},"f":{"docs":{},"d":{"docs":{},"a":{"docs":{},"s":{"docs":{},"j":{"docs":{},"j":{"docs":{},"l":{"docs":{},"q":{"docs":{},"v":{"docs":{},"b":{"docs":{},"g":{"docs":{},"n":{"docs":{},"z":{"docs":{},"z":{"docs":{},"x":{"docs":{},"t":{"1":{"docs":{},"d":{"docs":{},"n":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"k":{"docs":{},"r":{"docs":{},"j":{"docs":{},"z":{"docs":{},"c":{"docs":{},"w":{"docs":{},"t":{"docs":{},"r":{"docs":{},"r":{"docs":{},"s":{"docs":{},"v":{"docs":{},"b":{"docs":{},"m":{"docs":{},"v":{"docs":{},"f":{"docs":{},"v":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"r":{"docs":{},"k":{"docs":{},"s":{"docs":{},"u":{"docs":{},"j":{"docs":{},"m":{"docs":{},"v":{"docs":{},"t":{"docs":{},"r":{"docs":{},"l":{"docs":{},"m":{"1":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"z":{"docs":{},"n":{"docs":{},"h":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"x":{"docs":{},"q":{"docs":{},"l":{"docs":{},"z":{"docs":{},"x":{"docs":{},"q":{"docs":{},"k":{"docs":{},"h":{"docs":{},"v":{"docs":{},"w":{"docs":{},"i":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"b":{"docs":{},"w":{"docs":{},"u":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"b":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"c":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"v":{"docs":{},"t":{"docs":{},"n":{"docs":{},"r":{"docs":{},"n":{"docs":{},"k":{"docs":{},"x":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"u":{"docs":{},"v":{"docs":{},"v":{"docs":{},"p":{"docs":{},"t":{"docs":{},"k":{"docs":{},"f":{"docs":{},"h":{"docs":{},"w":{"docs":{},"e":{"docs":{},"p":{"docs":{},"i":{"docs":{},"v":{"docs":{},"k":{"5":{"docs":{},"x":{"docs":{},"r":{"1":{"docs":{},"n":{"docs":{},"l":{"docs":{},"s":{"0":{"docs":{},"f":{"docs":{},"v":{"docs":{},"q":{"docs":{},"t":{"docs":{},"d":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"v":{"docs":{},"u":{"docs":{},"q":{"docs":{},"j":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"1":{"docs":{},"b":{"docs":{},"m":{"docs":{},"r":{"docs":{},"u":{"docs":{},"t":{"docs":{},"t":{"docs":{},"u":{"docs":{},"j":{"docs":{},"v":{"docs":{},"p":{"docs":{},"n":{"docs":{},"k":{"docs":{},"p":{"docs":{},"u":{"docs":{},"r":{"1":{"docs":{},"i":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"0":{"docs":{},"e":{"docs":{},"x":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"y":{"docs":{},"w":{"docs":{},"n":{"docs":{},"j":{"docs":{},"b":{"3":{"docs":{},"v":{"docs":{},"u":{"docs":{},"d":{"docs":{},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"d":{"docs":{},"h":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"g":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{},"r":{"docs":{},"z":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"7":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"1":{"docs":{},"y":{"docs":{},"n":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"0":{"docs":{},"x":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"j":{"docs":{},"b":{"2":{"5":{"docs":{},"u":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"t":{"docs":{},"m":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"b":{"docs":{},"g":{"docs":{},"v":{"docs":{},"h":{"docs":{},"z":{"docs":{},"i":{"docs":{},"i":{"6":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"docs":{},"l":{"docs":{},"t":{"docs":{},"c":{"docs":{},"g":{"9":{"docs":{},"y":{"docs":{},"d":{"docs":{},"h":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"0":{"docs":{},"x":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"l":{"docs":{},"e":{"docs":{},"h":{"docs":{},"b":{"docs":{},"v":{"docs":{},"c":{"docs":{},"n":{"docs":{},"r":{"docs":{},"z":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"t":{"docs":{},"m":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"z":{"docs":{},"g":{"docs":{},"f":{"0":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"6":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"h":{"docs":{},"e":{"docs":{},"w":{"docs":{},"x":{"docs":{},"v":{"docs":{},"y":{"docs":{},"w":{"docs":{},"q":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"0":{"docs":{},"x":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"3":{"docs":{},"a":{"docs":{},"w":{"docs":{},"x":{"docs":{},"k":{"docs":{},"y":{"2":{"docs":{},"f":{"docs":{},"y":{"docs":{},"z":{"docs":{},"h":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"y":{"docs":{},"d":{"docs":{},"w":{"docs":{},"v":{"9":{"docs":{},"f":{"docs":{},"x":{"0":{"docs":{},".":{"docs":{},"_":{"docs":{},"w":{"docs":{},"w":{"5":{"docs":{},"c":{"1":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"h":{"8":{"docs":{},"a":{"4":{"docs":{},"j":{"docs":{},"h":{"docs":{},"y":{"docs":{},"b":{"docs":{},"x":{"docs":{},"e":{"docs":{},"z":{"docs":{},"z":{"docs":{},"p":{"8":{"docs":{},"r":{"docs":{},"j":{"1":{"7":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"8":{"docs":{},"q":{"docs":{},"l":{"docs":{},"z":{"docs":{},"z":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}}}}}}},"docs":{}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}},"docs":{}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}},"docs":{}}}}}}}}},"u":{"docs":{},"v":{"docs":{},"l":{"docs":{},"n":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"w":{"docs":{},"k":{"docs":{},"j":{"docs":{},"b":{"docs":{},"n":{"0":{"1":{"docs":{},"v":{"docs":{},"w":{"docs":{},"d":{"docs":{},"n":{"docs":{},"y":{"docs":{},"q":{"docs":{},"u":{"docs":{},"x":{"docs":{},"n":{"docs":{},"u":{"docs":{},"v":{"docs":{},"q":{"docs":{},"z":{"docs":{},"t":{"docs":{},"j":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"u":{"docs":{},"w":{"1":{"docs":{},"u":{"docs":{},"k":{"docs":{},"z":{"docs":{},"g":{"docs":{},"q":{"docs":{},"u":{"9":{"docs":{},"y":{"docs":{},"n":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"u":{"docs":{},"f":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"0":{"docs":{},"o":{"docs":{},"y":{"docs":{},"w":{"docs":{},"l":{"docs":{},"a":{"docs":{},"z":{"docs":{},"n":{"docs":{},"k":{"docs":{},"v":{"docs":{},"m":{"docs":{},"n":{"docs":{},"v":{"docs":{},"j":{"docs":{},"b":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"a":{"docs":{},"w":{"docs":{},"f":{"0":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"4":{"docs":{},"m":{"docs":{},"d":{"docs":{},"q":{"1":{"docs":{},"n":{"docs":{},"t":{"docs":{},"y":{"docs":{},"y":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"p":{"docs":{},"c":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"b":{"docs":{},"q":{"docs":{},"l":{"docs":{},"z":{"docs":{},"t":{"docs":{},"q":{"docs":{},"k":{"0":{"docs":{},"z":{"docs":{},"v":{"docs":{},"t":{"docs":{},"q":{"1":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"z":{"docs":{},"r":{"docs":{},"v":{"docs":{},"v":{"docs":{},"f":{"docs":{},"q":{"0":{"docs":{},"t":{"docs":{},"y":{"docs":{},"u":{"docs":{},"v":{"docs":{},"m":{"3":{"docs":{},"q":{"docs":{},"k":{"docs":{},"v":{"docs":{},"o":{"docs":{},"s":{"docs":{},"f":{"docs":{},"d":{"docs":{},"h":{"docs":{},"n":{"0":{"docs":{},"t":{"docs":{},"g":{"docs":{},"u":{"docs":{},"v":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"l":{"docs":{},"r":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"f":{"docs":{},"k":{"docs":{},"q":{"docs":{},"v":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},"b":{"docs":{},"w":{"docs":{},"v":{"0":{"docs":{},"j":{"docs":{},"a":{"docs":{},"n":{"docs":{},"e":{"docs":{},"h":{"docs":{},"p":{"docs":{},"s":{"docs":{},"u":{"docs":{},"t":{"docs":{},"d":{"docs":{},"s":{"docs":{},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"m":{"5":{"docs":{},"h":{"docs":{},"b":{"docs":{},"w":{"docs":{},"u":{"docs":{},"i":{"docs":{},"o":{"docs":{},"i":{"docs":{},"j":{"docs":{},"v":{"docs":{},"b":{"docs":{},"w":{"docs":{},"v":{"docs":{},"n":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"1":{"docs":{},"y":{"docs":{},"i":{"docs":{},"i":{"6":{"docs":{},"i":{"docs":{},"l":{"docs":{},"v":{"docs":{},"e":{"docs":{},"w":{"docs":{},"e":{"docs":{},"i":{"docs":{},"y":{"docs":{},"v":{"docs":{},"k":{"1":{"docs":{},"m":{"docs":{},"w":{"docs":{},"f":{"docs":{},"b":{"docs":{},"b":{"docs":{},"u":{"0":{"docs":{},"f":{"docs":{},"k":{"docs":{},"n":{"1":{"docs":{},"p":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"t":{"docs":{},"z":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"3":{"docs":{},"u":{"docs":{},"u":{"9":{"docs":{},"d":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"t":{"docs":{},"r":{"0":{"docs":{},"i":{"0":{"docs":{},"r":{"docs":{},"k":{"9":{"docs":{},"n":{"docs":{},"w":{"docs":{},"v":{"docs":{},"f":{"docs":{},"r":{"docs":{},"m":{"docs":{},"j":{"docs":{},"v":{"docs":{},"i":{"docs":{},"u":{"docs":{},"v":{"docs":{},"d":{"docs":{},"t":{"docs":{},"q":{"docs":{},"u":{"docs":{},"y":{"3":{"docs":{},"w":{"docs":{},"l":{"docs":{},"f":{"docs":{},"k":{"docs":{},"r":{"docs":{},"u":{"docs":{},"j":{"docs":{},"t":{"docs":{},"u":{"docs":{},"v":{"docs":{},"n":{"docs":{},"x":{"docs":{},"i":{"docs":{},"i":{"docs":{},"w":{"docs":{},"i":{"docs":{},"d":{"docs":{},"h":{"docs":{},"l":{"docs":{},"w":{"docs":{},"z":{"docs":{},"s":{"docs":{},"i":{"6":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"z":{"docs":{},"z":{"docs":{},"x":{"docs":{},"i":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"j":{"docs":{},"u":{"docs":{},"y":{"docs":{},"x":{"docs":{},"r":{"docs":{},"z":{"docs":{},"i":{"docs":{},"j":{"docs":{},"p":{"7":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"1":{"docs":{},"y":{"docs":{},"i":{"docs":{},"i":{"6":{"docs":{},"e":{"3":{"0":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"n":{"1":{"docs":{},"y":{"docs":{},"i":{"docs":{},"i":{"6":{"docs":{},"e":{"3":{"1":{"9":{"docs":{},"f":{"docs":{},"q":{"docs":{},".":{"6":{"docs":{},"t":{"docs":{},"q":{"2":{"docs":{},"i":{"docs":{},"l":{"docs":{},"c":{"docs":{},"d":{"docs":{},"b":{"6":{"docs":{},"m":{"2":{"docs":{},"z":{"docs":{},"d":{"docs":{},"i":{"docs":{},"j":{"docs":{},"u":{"docs":{},"j":{"docs":{},"_":{"docs":{},"d":{"docs":{},"_":{"docs":{},"o":{"docs":{},"e":{"docs":{},"p":{"docs":{},"g":{"docs":{},"x":{"docs":{},"f":{"docs":{},"y":{"docs":{},"n":{"3":{"docs":{},"a":{"docs":{},"p":{"2":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"3":{"docs":{},"i":{"docs":{},"p":{"docs":{},"c":{"docs":{},"u":{"5":{"docs":{},"a":{"docs":{},"h":{"docs":{},"r":{"docs":{},"w":{"docs":{},"r":{"docs":{},"n":{"docs":{},"v":{"docs":{},"n":{"docs":{},"e":{"docs":{},"j":{"docs":{},"r":{"docs":{},"y":{"docs":{},"w":{"docs":{},"r":{"docs":{},"p":{"docs":{},"g":{"docs":{},"i":{"docs":{},"_":{"docs":{},"y":{"docs":{},"u":{"docs":{},"v":{"docs":{},"w":{"docs":{},"k":{"docs":{},"o":{"1":{"docs":{},"u":{"docs":{},"o":{"docs":{},"d":{"5":{"docs":{},"s":{"8":{"docs":{},"b":{"docs":{},"x":{"docs":{},"l":{"docs":{},"m":{"docs":{},"w":{"docs":{},"y":{"docs":{},"p":{"docs":{},"w":{"docs":{},"v":{"docs":{},"g":{"docs":{},"f":{"docs":{},"a":{"docs":{},"a":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}},"docs":{}}}}}},"docs":{}},"docs":{}}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}},"docs":{}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}}},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.02304147465437788}},"'":{"docs":{},"d":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":3.3379416282642085}}}},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"f":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"a":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}}}}},",":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"docs":{},"_":{"8":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"l":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}},":":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}},"u":{"docs":{},"l":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}},"a":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"s":{"docs":{},":":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}},"g":{"docs":{},"i":{"docs":{},"v":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}},"e":{"docs":{},"t":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}},".":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}}},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}},".":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}}}}}}},"t":{"docs":{},"h":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.003968253968253968},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"s":{"docs":{},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.019083969465648856},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541}}},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}},"o":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.012949640287769784},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.03},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.017241379310344827},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"z":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"1":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"q":{"docs":{},"u":{"docs":{},"u":{"docs":{},"x":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"*":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.017241379310344827}},".":{"docs":{},"q":{"docs":{},"u":{"docs":{},"u":{"docs":{},"x":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},">":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}}}},"*":{"docs":{},".":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},">":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}},"a":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}},"r":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}},"t":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747}}},"y":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"l":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"o":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},"u":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}},".":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}}}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}}}}}},"s":{"docs":{},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}},"r":{"docs":{},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}},"v":{"docs":{},"o":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}},"i":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}},"n":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368}},"c":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}},"l":{"docs":{},"s":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.010948905109489052},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537}}},")":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909}}}}},"l":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}}}},"s":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}}},"r":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"r":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},".":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},",":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"d":{"docs":{},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}},"e":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"d":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}},"l":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},".":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"s":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"l":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.029197080291970802},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.024390243902439025},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01953125},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.005252100840336135},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":3.3557213930348255},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},",":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}},":":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}},",":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}},"'":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}}},"d":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"e":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}},"x":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},"v":{"docs":{},"e":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}},"y":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"a":{"docs":{},"t":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}},"a":{"docs":{},"g":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":10.039426523297491},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.005578800557880056},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}},"s":{"docs":{},",":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"]":{"docs":{},"\"":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}}}}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},",":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},"v":{"docs":{},"o":{"docs":{},"r":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}}}}},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/streaming/":{"ref":"developer/streaming/","tf":0.012704174228675136},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.03409090909090909}},")":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"โ€":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}}}}},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":3.3630363036303628},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}},"n":{"docs":{},"c":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}}},"(":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"m":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.037037037037037035},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728}}},"_":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}},"n":{"docs":{},"c":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"d":{"docs":{},"n":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}}},"r":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}}},"z":{"docs":{},"z":{"docs":{},".":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},".":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}}}}}}}}}}},"e":{"docs":{},"e":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}},"o":{"docs":{},"m":{"docs":{},":":{"docs":{"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334}}},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},"n":{"docs":{},"t":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},".":{"docs":{},"d":{"docs":{},"o":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}}}},"i":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"m":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}},"*":{"docs":{},"o":{"docs":{},".":{"docs":{},"b":{"docs":{},"*":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"h":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"i":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.015086206896551725}},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"l":{"docs":{},"i":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}}}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"y":{"docs":{},".":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}},"i":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}}},"d":{"docs":{},"e":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"t":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.018518518518518517},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506}},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},":":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"s":{"docs":{},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}}}}}},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"k":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.013605442176870748},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},"e":{"docs":{},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}}}}}}},"i":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"y":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},":":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},",":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},"v":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"s":{"docs":{},"h":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.03355704697986577},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.008316008316008316}},":":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}},",":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}},".":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"l":{"docs":{},"f":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},"t":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"w":{"docs":{},"e":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}},"s":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.01904761904761905}}}}}}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.010043041606886656},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}},"e":{"docs":{},"/":{"docs":{},"i":{"docs":{},"p":{"docs":{},".":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}}}}}}}}}}},"p":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}},"m":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"docs":{},"e":{"docs":{},"w":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}}}}}}},"l":{"docs":{},"d":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"o":{"docs":{},"k":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"'":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},":":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}},"d":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":3.3450292397660815}},"\"":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.017241379310344827}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}},"p":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.009652509652509652},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"_":{"docs":{},"t":{"docs":{},"l":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}},"\"":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}},"'":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}},".":{"docs":{},">":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"a":{"docs":{},"a":{"docs":{},"l":{"5":{"docs":{},"q":{"2":{"docs":{},"b":{"3":{"docs":{},"s":{"docs":{},"m":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}},".":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}},"e":{"docs":{},"r":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"s":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}},"!":{"docs":{},"!":{"docs":{},"!":{"docs":{},")":{"docs":{},",":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}},"y":{"docs":{},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"t":{"docs":{},"h":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"r":{"docs":{},"t":{"docs":{},"b":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}},"s":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}},"d":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"=":{"0":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}},"docs":{}}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.01195814648729447},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.01}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{},".":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},")":{"docs":{},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}}}}},"_":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},")":{"docs":{},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}}}},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"2":{"2":{"2":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}},"/":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},"?":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"=":{"docs":{},"c":{"docs":{},"b":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"=":{"1":{"docs":{},"&":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"=":{"1":{"docs":{},"&":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"=":{"1":{"docs":{},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}}}}}}},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},"?":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"=":{"1":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"docs":{}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"9":{"0":{"9":{"0":{"docs":{},"/":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"7":{"docs":{},"p":{"docs":{},"o":{"3":{"docs":{},"m":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"2":{"6":{"docs":{},"u":{"3":{"docs":{},"l":{"docs":{},"f":{"docs":{},"z":{"docs":{},"f":{"docs":{},"p":{"5":{"docs":{},"b":{"docs":{},"n":{"3":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"3":{"2":{"docs":{},"x":{"3":{"docs":{},"p":{"docs":{},"k":{"docs":{},"l":{"docs":{},"b":{"docs":{},"r":{"docs":{},"v":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"e":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"h":{"docs":{},"w":{"docs":{},"p":{"docs":{},"q":{"docs":{},"e":{"docs":{},"u":{"docs":{},"g":{"7":{"docs":{},"e":{"docs":{},"j":{"docs":{},"y":{"4":{"docs":{},"h":{"docs":{},"\\":{"docs":{},"?":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"(":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"/":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},".":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"/":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}},"u":{"docs":{},"b":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}},".":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"e":{"docs":{},"g":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"r":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"n":{"docs":{},"t":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"d":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.006478209658421673},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"gateways/":{"ref":"gateways/","tf":0.034858387799564274},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},")":{"docs":{},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}}}},"s":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}},"v":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.02},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}},"t":{"docs":{"./":{"ref":"./","tf":10.013157894736842},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"developer/":{"ref":"developer/","tf":10},"developer/streaming/":{"ref":"developer/streaming/","tf":10}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.01904761904761905},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816}}}}},"x":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.008547008547008548},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.009316770186335404},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},".":{"2":{"2":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"docs":{}},"3":{"4":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"docs":{}},"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},")":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}},":":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.013333333333333334},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0196078431372549},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":3.336438923395445},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},":":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}}}},"d":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}},"o":{"docs":{},"m":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.012269938650306749},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{},"u":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}}}},"e":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}}}}}},"x":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}},"e":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}}}},"x":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}},"f":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.015789473684210527}}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},"o":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.008597883597883597},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.010166358595194085}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"r":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.015503875968992248},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/":{"ref":"developer/","tf":0.01639344262295082},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":10.057894736842105},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.02459016393442623},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.00949367088607595},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":10.024213075060533},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.020134228187919462},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.031578947368421054},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01092896174863388},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"s":{"docs":{},",":{"docs":{"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334}}},".":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}},".":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}},"n":{"docs":{},"c":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}},"t":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"i":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},":":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}}},"r":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}},"n":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":5.005780346820809}}}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495}}}}}}},"v":{"docs":{},"o":{"docs":{},"k":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}},"l":{"docs":{},"v":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}},"'":{"docs":{},",":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}},"s":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}}}}}}},"k":{"docs":{"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"n":{"docs":{},"k":{"docs":{"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"i":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}},"g":{"docs":{},"o":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.014792899408284023},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}},"r":{"docs":{},"u":{"docs":{},"b":{"docs":{},"i":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}}},"d":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.00510204081632653},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.011554621848739496},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.009652509652509652},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.009762900976290097},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.049019607843137254},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}}},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},"a":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}},"l":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"l":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.010011778563015312},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.020569620253164556},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.02725563909774436},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.023166023166023165},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0059665871121718375},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.011976047904191617},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}},",":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}},"r":{"docs":{},"o":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"l":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.02286902286902287},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"s":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"m":{"docs":{},"u":{"docs":{},"n":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}}}}}},"a":{"docs":{},"g":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.027777777777777776},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}},"e":{"docs":{},",":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},".":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.016666666666666666}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}}},"s":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}},"u":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.012658227848101266},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.007352941176470588},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.009762900976290097},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},"r":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.005252100840336135},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.01394700139470014},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497}}}},"d":{"docs":{},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}},"โ€™":{"docs":{},"t":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}}},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}}},"'":{"docs":{},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}}}}},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},".":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},":":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}}}}}}},".":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01171875},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"p":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},":":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"8":{"0":{"docs":{},"t":{"docs":{},"b":{"docs":{},"w":{"docs":{},"j":{"docs":{},"b":{"docs":{},"y":{"docs":{},"u":{"docs":{},"l":{"docs":{},"x":{"1":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}},"docs":{}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.01904761904761905}}},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}}}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},"e":{"docs":{},".":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}}}},"e":{"docs":{},"e":{"docs":{},"e":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}},"a":{"docs":{},"t":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"f":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},")":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}}}}}}}}}},"k":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.00697350069735007}},"u":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}}}}}}}},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}},"n":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"y":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.006478209658421673},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.023346303501945526},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.011510791366906475},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.013353115727002967},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.03546099290780142},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.01680672268907563},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.005639097744360902},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.005791505791505791},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":5.052998605299861},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.026415094339622643},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.018404907975460124},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}},"\"":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}},"'":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},";":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.005578800557880056}}},")":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00954653937947494}},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"j":{"docs":{},"k":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},"e":{"docs":{},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}}}}}},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}},",":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}},"b":{"docs":{},"o":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}}}},":":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},"p":{"docs":{},"a":{"docs":{},"i":{"docs":{},"r":{"docs":{},":":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"'":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"[":{"docs":{},"]":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},"y":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"l":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.017341040462427744},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.02197802197802198},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}}},":":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"c":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},"e":{"docs":{},"w":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}},"l":{"docs":{},"l":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.010948905109489052},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}}}}},")":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"l":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"developer/":{"ref":"developer/","tf":0.03278688524590164},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}},"s":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"r":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}},",":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}},"r":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}},")":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}},"n":{"docs":{},"c":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}},"c":{"docs":{},"h":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}},".":{"docs":{},"a":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}},"s":{"docs":{},"t":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}}}},"z":{"docs":{},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"m":{"docs":{},"e":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}},"=":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}},"o":{"docs":{},"n":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"u":{"docs":{},"b":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.023026315789473683},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.031578947368421054},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.016483516483516484},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.019867549668874173},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}}}}}}}}}}},"\\":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},".":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},".":{"docs":{},"*":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}}}}}}}},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}}}}}}}}}}}}}}},"{":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613}}}}}}},"\"":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}},"\\":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},".":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},".":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"=":{"docs":{},"b":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}}}},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}}}}},"a":{"docs":{},"f":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"leafnodes/":{"ref":"leafnodes/","tf":5.0503597122302155},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.033707865168539325}},"e":{"docs":{},")":{"docs":{},".":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}},".":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}},",":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928}},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"0":{"0":{"0":{"docs":{},",":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"r":{"docs":{},"n":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"v":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}}}}},"n":{"docs":{},"g":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},")":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}},"t":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}},"'":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.013725490196078431},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.02127659574468085},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497}}}}},"โ€™":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.012605042016806723},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.00697350069735007},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}},"s":{"docs":{},"s":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"f":{"docs":{},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},",":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.006568144499178982},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.023006134969325152},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.016483516483516484},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.01509433962264151},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.03296703296703297},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.03875968992248062},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.00949367088607595},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.01020408163265306},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.015915119363395226},"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.007263922518159807},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":3.342592592592592},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":3.3494623655913975},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.017777777777777778},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.02564102564102564},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}},"d":{"docs":{},",":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},".":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"n":{"docs":{},"u":{"docs":{},"x":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"e":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.014598540145985401},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.02127659574468085},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0180623973727422},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"s":{"docs":{},")":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534}}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},",":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"k":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"developer/":{"ref":"developer/","tf":0.01639344262295082}}}},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/":{"ref":"developer/","tf":0.11475409836065574},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.03296703296703297},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.021621621621621623},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.022857142857142857},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.03896103896103896},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.018276762402088774},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0165016501650165},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0213903743315508},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.008064516129032258},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.012269938650306749},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.04081632653061224},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.04225352112676056},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},",":{"docs":{"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"y":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}},"'":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}},",":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}},".":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}},"v":{"docs":{},"e":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464}}}}}}}},"k":{"docs":{},"e":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}},"t":{"docs":{},"t":{"docs":{},"l":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.008928571428571428},"gateways/":{"ref":"gateways/","tf":0.008714596949891068},"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},":":{"4":{"1":{"1":{"1":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375}}},"docs":{}},"docs":{}},"2":{"2":{"2":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}},"docs":{}},"4":{"4":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}},"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}}},"docs":{}},"docs":{}},"3":{"3":{"3":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"4":{"4":{"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"docs":{}},"docs":{}},"5":{"2":{"4":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"4":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"3":{"3":{"3":{"docs":{},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"docs":{}},"docs":{}},"docs":{}},"7":{"2":{"2":{"2":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"docs":{},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"o":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}}},"p":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}},"=":{"docs":{},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}}}}}}}}}},"g":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.03225806451612903},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":10.076642335766424},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.032520325203252036},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.01195814648729447},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},"e":{"docs":{},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"s":{"docs":{},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},";":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}}},".":{"docs":{},"f":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"u":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.016891891891891893},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.01201923076923077},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.007592190889370932},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.012422360248447204},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.015665796344647518},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}},"%":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},":":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"t":{"docs":{},"h":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}}}}},"w":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},")":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"a":{"docs":{},"d":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}},".":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}}},"e":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}},"t":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"d":{"docs":{},"m":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}},"f":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"m":{"2":{"docs":{},"q":{"docs":{},"d":{"docs":{},"a":{"docs":{},"y":{"docs":{},"q":{"docs":{},"z":{"docs":{},"_":{"docs":{},"z":{"docs":{},"m":{"docs":{},"r":{"2":{"docs":{},"g":{"docs":{},"l":{"docs":{},"m":{"docs":{},"v":{"docs":{},"y":{"docs":{},"k":{"4":{"docs":{},"e":{"docs":{},"j":{"6":{"docs":{},"j":{"8":{"docs":{},"r":{"docs":{},"q":{"1":{"docs":{},"u":{"docs":{},"z":{"docs":{},"d":{"docs":{},"g":{"docs":{},"a":{"docs":{},"g":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}},"docs":{}}}},"docs":{}}},"docs":{}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}},".":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}},"i":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},":":{"6":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"[":{"docs":{},"]":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}},"k":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.02},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/":{"ref":"nats_admin/","tf":3.41025641025641},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"r":{"docs":{},".":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}},"s":{"docs":{},".":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}},",":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154}}}}}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.016483516483516484},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"f":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.03409090909090909}}}}},"y":{"docs":{},".":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}}},"p":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.021333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.03937007874015748},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.019230769230769232},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.02857142857142857},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.010395010395010396}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.02631578947368421},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},")":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}},".":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}}}}},"c":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},"o":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}},"s":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},",":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}},"x":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.008403361344537815},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.02443609022556391},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.025096525096525095},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.012552301255230125},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.026415094339622643},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.008210180623973728},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/streaming/":{"ref":"developer/streaming/","tf":0.012704174228675136},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.03409090909090909}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"=":{"5":{"docs":{},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"docs":{}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}}},"=":{"1":{"0":{"docs":{},",":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.013333333333333334},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.013136288998357963},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.02097902097902098},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},":":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"5":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}},"docs":{}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"(":{"2":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}},"docs":{}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259}}}}}}}}}}},"s":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},".":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}}}}},"docs":{}},"docs":{}}}}}}}}}}}},":":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}},"k":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"j":{"docs":{},"o":{"docs":{},"r":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}},"l":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"g":{"docs":{},"i":{"docs":{},"c":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.06578947368421052},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0176678445229682},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.01740506329113924},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.00510204081632653},"gateways/":{"ref":"gateways/","tf":0.015250544662309368},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.02302158273381295},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.02620689655172414},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.0515695067264574},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.0695970695970696},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.007518796992481203},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.05806451612903226},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":3.3399122807017543},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.019867549668874173},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.04201680672268908},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0392156862745098},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":3.3517665130568353},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":2.04},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":5.038961038961039},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.040268456375838924},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.03349282296650718},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.013513513513513514},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":3.3717948717948714},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":5.024896265560166},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.016268980477223426},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.024844720496894408},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":2.533333333333333},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.011976047904191617},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":5.04},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.010443864229765013},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.026402640264026403},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.016},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.032208588957055216},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.04},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.03418803418803419},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02},"developer/streaming/":{"ref":"developer/streaming/","tf":0.047186932849364795},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.028169014084507043},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":3.3888888888888884},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.045454545454545456},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.02413793103448276},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.03373015873015873},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.014553014553014554},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.036968576709796676}},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.015},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}},".":{"docs":{},".":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"โ€™":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},"'":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}}}}},"/":{"docs":{},"e":{"docs":{},"v":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},":":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}},"'":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}},"\"":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}},")":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}},".":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}}}},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"a":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},":":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}}}}}}}},"l":{"docs":{},"t":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}},"m":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.05333333333333334},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":5.018867924528302}}},"y":{"docs":{},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}}}}},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},"s":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.007263922518159807},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.028169014084507043}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}}}}},"e":{"docs":{},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}},"r":{"docs":{},"e":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}}}}},"i":{"docs":{},"c":{"docs":{},"r":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}}}}}}}}},"n":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}},"d":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},":":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}},"i":{"docs":{},"m":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}},"u":{"docs":{},"m":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},"a":{"docs":{},"l":{"docs":{},".":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}},"u":{"docs":{},"t":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}},",":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"/":{"docs":{},"a":{"docs":{},"v":{"docs":{},"g":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}},"s":{"docs":{},"s":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0196078431372549}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"o":{"docs":{},"k":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"g":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235}}}}}}}},"o":{"docs":{},"n":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}}},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},":":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}},"o":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.012658227848101266},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.01293103448275862},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}},"d":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/":{"ref":"gateways/","tf":0.010893246187363835},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.008210180623973728},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.012474012474012475}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"r":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}},"l":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}}},")":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334}}}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}},"v":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":10.039627039627039},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":5.005347593582887}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"]":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},".":{"docs":{"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806}}}}}}},"s":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}},",":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}}},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}},"p":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"s":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.009389671361502348}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"g":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.012422360248447204},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.010443864229765013},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005291005291005291},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.007326007326007326}}}}}}},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.0406885758998435}},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.018656716417910446}}}}}}},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.018656716417910446},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"_":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}}},"t":{"docs":{},"o":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}},")":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.023474178403755867}}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"=":{"1":{"6":{"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529}}}},"docs":{}},"docs":{}}}}},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}},"\"":{"docs":{},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.009316770186335404},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},";":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}},")":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},";":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.013333333333333334}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}}}},"*":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}}}},",":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}}},"_":{"docs":{},"a":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}},"b":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"a":{"docs":{},"f":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}}}}}}},"k":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"d":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":10.033557046979865}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}},":":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}},"b":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.0406885758998435}}}}}},")":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"x":{"docs":{},"f":{"docs":{},"x":{"docs":{},"y":{"docs":{},"i":{"docs":{},"p":{"docs":{},"e":{"docs":{},"k":{"0":{"docs":{},"m":{"docs":{},"u":{"docs":{},"g":{"docs":{},"a":{"docs":{},"l":{"docs":{},"j":{"docs":{},"j":{"7":{"docs":{},"t":{"5":{"docs":{},"j":{"docs":{},"x":{"docs":{},"e":{"docs":{},"h":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"7":{"docs":{},"m":{"docs":{},"n":{"docs":{},"y":{"5":{"docs":{},"i":{"docs":{},"y":{"docs":{},"c":{"docs":{},"j":{"7":{"docs":{},"n":{"docs":{},"h":{"docs":{},"l":{"docs":{},"d":{"docs":{},"o":{"docs":{},"h":{"docs":{},"u":{"5":{"docs":{},"i":{"docs":{},"f":{"docs":{},"o":{"docs":{},"g":{"2":{"docs":{},"l":{"docs":{},"l":{"docs":{},"f":{"docs":{},"w":{"docs":{},"_":{"docs":{},"h":{"docs":{},"p":{"docs":{},"t":{"docs":{},"c":{"docs":{},"f":{"docs":{},"a":{"4":{"docs":{},"q":{"docs":{},"a":{"9":{"8":{"9":{"docs":{},"v":{"docs":{},"q":{"docs":{},"e":{"docs":{},"c":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"b":{"docs":{},"u":{"docs":{},"c":{"docs":{},"a":{"docs":{},"a":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}},"p":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}}}}}}},"n":{"docs":{"gateways/":{"ref":"gateways/","tf":0.006535947712418301},"leafnodes/":{"ref":"leafnodes/","tf":0.008633093525179856},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01912568306010929},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.009389671361502348},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":3.333333333333333},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.02631578947368421},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.030624263839811542},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.08947368421052632},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.06201550387596899},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.11475409836065574},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.060126582278481014},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.014336917562724014},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.018666666666666668},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":5.095238095238095},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.036036036036036036},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.019455252918287938},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.026785714285714284},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.01904761904761905},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.015915119363395226},"leafnodes/":{"ref":"leafnodes/","tf":0.025899280575539568},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0364963503649635},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"nats_admin/":{"ref":"nats_admin/","tf":3.41025641025641},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.03529411764705882},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.022068965517241378},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.0975609756097561},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.026706231454005934},"nats_docker/":{"ref":"nats_docker/","tf":5.076040172166428},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.05},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.05818965517241379},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.053811659192825115},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.05569007263922518},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.08203125},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.0463980463980464},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.07396449704142012},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.015756302521008403},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.007722007722007722},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":3.413333333333333},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.03736920777279522},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.028901734104046242},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":5.060109289617486},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.054104477611940295},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":5.040688575899844},"developer/":{"ref":"developer/","tf":0.04918032786885246},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.06451612903225806},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.013157894736842105},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.019867549668874173},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.08955223880597014},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.016666666666666666},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.02857142857142857},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.03508771929824561},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.022388059701492536},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.007159904534606206},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.026845637583892617},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.02},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.008064516129032258},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.013803680981595092},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":3.382222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":3.4188034188034186},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":3.408333333333333},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.024271844660194174},"developer/streaming/":{"ref":"developer/streaming/","tf":0.018148820326678767},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":3.4251700680272106},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.01455026455026455},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.037422037422037424},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":3.3527418361059764}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}}}}},"s":{"docs":{},".":{"1":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"2":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"3":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}},"(":{"docs":{},"{":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},":":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}},"\"":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}},";":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{},"/":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},":":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.016260162601626018}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}},",":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},";":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}}}}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}},")":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},")":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}}}}}}}}},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"_":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}},"n":{"docs":{},"c":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},"(":{"docs":{},":":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}},"[":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"m":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"@":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},":":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"b":{"docs":{},"e":{"docs":{},"e":{"docs":{},"f":{"docs":{},"@":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},":":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},"t":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"d":{"docs":{},")":{"docs":{},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"'":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}},"q":{"docs":{},"u":{"docs":{},"u":{"docs":{},"x":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}},"e":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.01}}}}},"j":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}},"w":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"(":{"docs":{},"n":{"docs":{},"c":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}},"o":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909}}},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"b":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"1":{"0":{"docs":{},"*":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}}}}}}}}}}}}}},"docs":{}},"2":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}},"docs":{}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"c":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}},"c":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"5":{"docs":{},"*":{"1":{"0":{"2":{"4":{"docs":{},"*":{"1":{"0":{"2":{"4":{"docs":{},")":{"docs":{},")":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"1":{"0":{"docs":{},"*":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},",":{"docs":{"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"2":{"0":{"docs":{},"*":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},")":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"c":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}},"c":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"n":{"docs":{},"c":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"1":{"0":{"docs":{},"*":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},".":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"i":{"docs":{},"o":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"s":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},"\"":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}},")":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}},":":{"1":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931}}},"docs":{}}},"1":{"docs":{},".":{"0":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}}},"docs":{}}},"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112}}}}}}}},"/":{"docs":{},"/":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},":":{"6":{"2":{"2":{"2":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"1":{"0":{"docs":{},".":{"1":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"5":{"2":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.00510204081632653}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"2":{"docs":{},":":{"5":{"2":{"2":{"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}},":":{"4":{"2":{"2":{"2":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}},",":{"docs":{"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}},"a":{"docs":{},"g":{"0":{"docs":{},"h":{"docs":{},"t":{"docs":{},"x":{"docs":{},"l":{"4":{"docs":{},"r":{"docs":{},"g":{"docs":{},"g":{"7":{"docs":{},"d":{"docs":{},"x":{"docs":{},"d":{"docs":{},"a":{"docs":{},"j":{"docs":{},"w":{"docs":{},"b":{"docs":{},"c":{"8":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}},"docs":{}}}},"s":{"3":{"docs":{},"c":{"docs":{},"r":{"3":{"docs":{},"t":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"docs":{}}}},"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},":":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}}},"docs":{}},"4":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898}},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}},"docs":{}},"docs":{}},"docs":{}},"5":{"2":{"4":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"docs":{}},"6":{"2":{"2":{"2":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00980392156862745}},",":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"6":{"3":{"3":{"3":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00980392156862745}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}},"4":{"8":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"docs":{}},"docs":{}},"3":{"3":{"3":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705}}},"docs":{}},"docs":{}},"4":{"4":{"4":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.023668639053254437}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"@":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"@":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"b":{"docs":{},"i":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}}}}}},"'":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"/":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02}},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}}}}}}}}}}}}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}},")":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"c":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}}}}}},"=":{"3":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"docs":{}},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"_":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}}}}},"(":{"docs":{},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}},"!":{"docs":{},"\"":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"'":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"\"":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"u":{"docs":{},"r":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}},"m":{"docs":{},"e":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.007326007326007326},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.005252100840336135},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.011278195488721804},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.011583011583011582},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.00697350069735007},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.015},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0073937153419593345}},",":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"s":{"docs":{},".":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}},"e":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}}}}},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04}}},"=":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}}}}},"\"":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"y":{"docs":{},"h":{"3":{"5":{"docs":{},"q":{"7":{"docs":{},"r":{"docs":{},"o":{"docs":{},"q":{"docs":{},"h":{"docs":{},"l":{"docs":{},"q":{"3":{"docs":{},"k":{"5":{"6":{"5":{"docs":{},"j":{"docs":{},"r":{"4":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"j":{"docs":{},"g":{"docs":{},"o":{"5":{"docs":{},"e":{"docs":{},"k":{"4":{"docs":{},"f":{"docs":{},"j":{"docs":{},"x":{"6":{"docs":{},"k":{"docs":{},"x":{"5":{"docs":{},"i":{"docs":{},"h":{"docs":{},"h":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"q":{"docs":{},"b":{"docs":{},"r":{"docs":{},"s":{"docs":{},"y":{"docs":{},"v":{"docs":{},"w":{"docs":{},"i":{"2":{"docs":{},"n":{"docs":{},"o":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"n":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},"s":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}}}}},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.014553014553014554}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.01293103448275862},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.020710059171597635},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},".":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}},":":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":3.3386336866902235},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.011764705882352941},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.007159904534606206},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.009615384615384616},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.021691973969631236},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.012280701754385965},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.006720430107526882},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.010889292196007259},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},"r":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}},",":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"x":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"l":{"docs":{},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},"y":{"docs":{},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}}},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"_":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":10.035460992907801},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}},"e":{"docs":{},"y":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.023622047244094488},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":10.042801556420233},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.028368794326241134},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":5.0184049079754605},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.03731343283582089}},"s":{"docs":{},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},",":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}},"โ€™":{"docs":{},")":{"docs":{},";":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}},":":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},":":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.00510204081632653},"gateways/":{"ref":"gateways/","tf":0.0196078431372549},"leafnodes/":{"ref":"leafnodes/","tf":5.018705035971223},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.03879310344827586},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.05029585798816568},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},":":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"e":{"docs":{},"p":{"docs":{},"=":{"1":{"docs":{},"]":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}},"docs":{}}}}},"'":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}},"n":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},")":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031}}}}},"_":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}}}}}}},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},":":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537}}}}}}}}}}}},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.00697350069735007},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"(":{"docs":{},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},".":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"i":{"docs":{},"c":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},"f":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}},"y":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}},":":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542}}}}},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}},":":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}},"i":{"docs":{},"s":{"docs":{},"y":{"docs":{},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"b":{"docs":{},"n":{"docs":{},"y":{"docs":{},"n":{"docs":{},"r":{"4":{"docs":{},"z":{"docs":{},"n":{"docs":{},"t":{"docs":{},"h":{"4":{"docs":{},"n":{"2":{"docs":{},"u":{"docs":{},"q":{"docs":{},"k":{"docs":{},"s":{"docs":{},"a":{"docs":{},"a":{"docs":{},"k":{"docs":{},"b":{"docs":{},"a":{"docs":{},"f":{"docs":{},"l":{"docs":{},"d":{"docs":{},"v":{"3":{"docs":{},"p":{"docs":{},"z":{"docs":{},"o":{"4":{"docs":{},"o":{"docs":{},"u":{"docs":{},"y":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"i":{"docs":{},"q":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"q":{"docs":{},"t":{"7":{"docs":{},"b":{"docs":{},"t":{"4":{"docs":{},"z":{"docs":{},"f":{"6":{"docs":{},"w":{"docs":{},"x":{"7":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124}}},"docs":{}}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}},"docs":{}}}}},"h":{"docs":{},"u":{"docs":{},"d":{"docs":{},"b":{"docs":{},"f":{"3":{"docs":{},"t":{"docs":{},"v":{"docs":{},"j":{"docs":{},"s":{"docs":{},"w":{"docs":{},"c":{"docs":{},"d":{"docs":{},"p":{"docs":{},"g":{"2":{"docs":{},"h":{"docs":{},"s":{"docs":{},"k":{"docs":{},"i":{"4":{"docs":{},"i":{"2":{"docs":{},"s":{"docs":{},"b":{"docs":{},"s":{"docs":{},"p":{"docs":{},"d":{"docs":{},"t":{"docs":{},"n":{"docs":{},"y":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"f":{"docs":{},"a":{"docs":{},"z":{"docs":{},"u":{"docs":{},"z":{"docs":{},"y":{"docs":{},"x":{"docs":{},"v":{"docs":{},"a":{"2":{"docs":{},"i":{"docs":{},"y":{"docs":{},"r":{"docs":{},"u":{"docs":{},"g":{"docs":{},"p":{"docs":{},"z":{"docs":{},"u":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}},"c":{"1":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}}}}}}}}}},":":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}}},"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.032520325203252036},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0273972602739726},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.01509433962264151},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.025},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.02},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.022988505747126436},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.03636363636363636},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.027972027972027972},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.021621621621621623},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.023391812865497075},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.023148148148148147},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.02867383512544803},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.04020100502512563},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00954653937947494},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.006507592190889371},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.011976047904191617},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.02666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.013201320132013201},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.016},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.016042780748663103},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.013440860215053764},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}},"e":{"docs":{},"o":{"docs":{},"j":{"docs":{},"j":{"5":{"docs":{},"s":{"docs":{},"b":{"docs":{},"j":{"docs":{},"k":{"docs":{},"u":{"docs":{},"t":{"docs":{},"m":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},"n":{"docs":{},"u":{"3":{"docs":{},"n":{"docs":{},"b":{"docs":{},"p":{"docs":{},"j":{"docs":{},"s":{"docs":{},"l":{"docs":{},"j":{"docs":{},"p":{"docs":{},"c":{"docs":{},"m":{"docs":{},"q":{"docs":{},"j":{"docs":{},"u":{"docs":{},"i":{"docs":{},"q":{"docs":{},"i":{"docs":{},"w":{"docs":{},"k":{"docs":{},"f":{"docs":{},"h":{"docs":{},"w":{"docs":{},"e":{"5":{"docs":{},"d":{"docs":{},"p":{"docs":{},"e":{"docs":{},"t":{"docs":{},"j":{"docs":{},"k":{"docs":{},"h":{"docs":{},"x":{"2":{"docs":{},"c":{"docs":{},"o":{"2":{"docs":{},"i":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}},"docs":{}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}},".":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.02666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.013201320132013201},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}},".":{"docs":{},"a":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}},"b":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}},"c":{"docs":{},".":{"docs":{},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}},"d":{"docs":{},".":{"docs":{},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}},"e":{"docs":{},"u":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}},".":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"w":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}},".":{"docs":{},"a":{"docs":{},"t":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.016597510373443983},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}},"'":{"docs":{},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}}}}}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},")":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},"p":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},";":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},",":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.019138755980861243},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},";":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}},",":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},".":{"docs":{},"*":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}},">":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},")":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}}}}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}},".":{"docs":{},">":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"*":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},")":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"(":{"docs":{},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.016260162601626018},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.016666666666666666},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.008676789587852495},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.016042780748663103},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374}},";":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.024390243902439025},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.02054794520547945},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.009316770186335404},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"=":{"docs":{},"[":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"@":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"@":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},")":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"=":{"2":{"docs":{},")":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}},"docs":{}}}}}}}}}}}}}}}}},"\"":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"4":{"4":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},"=":{"docs":{},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}},"*":{"docs":{},"*":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"?":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"'":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},"(":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759}},";":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"=":{"1":{"docs":{},")":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},"docs":{}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757}}}}},"u":{"docs":{},"b":{"2":{"docs":{},",":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}},"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786}}}}}}},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},"(":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}},";":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"_":{"docs":{},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.010443864229765013}}}}}}}}},"'":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"(":{"docs":{},"'":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"?":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}}}}}}},"a":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"o":{"docs":{},"_":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.021333333333333333},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"gateways/":{"ref":"gateways/","tf":0.017429193899782137},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.01569506726457399},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.012519561815336464},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":5.009803921568627},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0125},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":2.513986013986014},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}}}},"e":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358}},"i":{"docs":{},"c":{"docs":{},"\"":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"]":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},";":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.018404907975460124}}},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}},"i":{"docs":{},"d":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}}}}}},",":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}}},"d":{"6":{"docs":{},"z":{"docs":{},"z":{"docs":{},"d":{"docs":{},"q":{"docs":{},"q":{"docs":{},"d":{"docs":{},"g":{"docs":{},"k":{"docs":{},"y":{"docs":{},"q":{"docs":{},"g":{"docs":{},"d":{"docs":{},"d":{"6":{"docs":{},"q":{"docs":{},"n":{"2":{"docs":{},"y":{"2":{"6":{"docs":{},"y":{"docs":{},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"t":{"docs":{},"h":{"6":{"docs":{},"b":{"docs":{},"m":{"docs":{},"m":{"docs":{},"o":{"docs":{},"j":{"docs":{},"z":{"2":{"docs":{},"x":{"docs":{},"j":{"docs":{},"b":{"2":{"docs":{},"v":{"docs":{},"a":{"docs":{},"s":{"docs":{},"p":{"docs":{},"v":{"docs":{},"i":{"docs":{},"i":{"3":{"docs":{},"x":{"docs":{},"d":{"6":{"docs":{},"r":{"docs":{},"f":{"docs":{},"o":{"docs":{},"q":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}}}}},"docs":{}}}},"docs":{}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}},"docs":{}},"docs":{}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232}},"c":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.010071942446043165},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":10.063157894736841},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.01995798319327731},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.013157894736842105},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.010617760617760617},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.015341701534170154},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.02092675635276532},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.01509433962264151},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}},"_":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}},"(":{"docs":{},"n":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},"i":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534}},"(":{"docs":{},"m":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},"l":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.016891891891891893},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.01201923076923077},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.007592190889370932},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.012422360248447204},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.015665796344647518},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},")":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},":":{"docs":{},"m":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},"p":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.009389671361502348}},")":{"docs":{},".":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},"m":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}},"o":{"2":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}},"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.00949367088607595},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.016483516483516484},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"c":{"docs":{"./":{"ref":"./","tf":0.02631578947368421},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"e":{"docs":{},"โ€™":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},")":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}},"s":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},".":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"\"":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}},"i":{"docs":{},"n":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}}}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"/":{"docs":{},"o":{"docs":{},"f":{"docs":{},"f":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}},"p":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.02631578947368421},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.008902077151335312},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.025210084033613446},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.03207810320781032},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.02092675635276532},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.018867924528301886},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907}}},")":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},"โ€™":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},")":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}},"n":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}}}}}},"t":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},"i":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"gateways/":{"ref":"gateways/","tf":0.004357298474945534}},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.02867383512544803},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.010948905109489052},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.013431013431013432},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.01943198804185351},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.02185792349726776},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.005597014925373134},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.01509433962264151},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.025},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.011494252873563218},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.008353221957040573},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.008064516129032258},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.010582010582010581},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},"s":{"docs":{},".":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}}},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}},",":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}},"[":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}},".":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}},",":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.03125},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931}}}}}}}}}}}}}}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491}}}}},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}},".":{"docs":{},".":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}},")":{"docs":{},";":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}},",":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}},")":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}},",":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}},"a":{"docs":{},"q":{"docs":{},"u":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"y":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609}}}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"v":{"docs":{},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}},".":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}}},"b":{"docs":{},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{},"s":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}}}}}},"k":{"7":{"3":{"docs":{},"o":{"docs":{},"l":{"docs":{},"q":{"docs":{},"o":{"docs":{},"j":{"docs":{},"w":{"docs":{},"n":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}}}}}}}}},"docs":{}},"docs":{}}},"f":{"docs":{},"f":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},")":{"docs":{},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}}}}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},".":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}},"r":{"docs":{},"g":{"docs":{},"a":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"i":{"docs":{},"z":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}}}},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}},"\\":{"docs":{},"t":{"docs":{},"`":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"e":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}},"s":{"docs":{},")":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},".":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}},"u":{"docs":{},"t":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"gateways/":{"ref":"gateways/","tf":0.008714596949891068},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.012658227848101266},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005}}},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786}}}}}}},"g":{"docs":{},"o":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}},":":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223}}},".":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}},"=":{"docs":{},"c":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},",":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}},"w":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395}}}}}},"s":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}},"l":{"docs":{},"d":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}},"e":{"docs":{},"r":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"s":{"docs":{},"t":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296}}}}}}},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"s":{"docs":{},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"a":{"docs":{},"y":{"docs":{},"i":{"3":{"docs":{},"y":{"docs":{},"u":{"docs":{},"z":{"docs":{},"s":{"docs":{},"w":{"docs":{},"d":{"docs":{},"n":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"2":{"docs":{},"i":{"docs":{},"n":{"3":{"docs":{},"h":{"docs":{},"z":{"docs":{},"s":{"docs":{},"i":{"docs":{},"p":{"3":{"docs":{},"j":{"docs":{},"a":{"2":{"docs":{},"e":{"3":{"docs":{},"v":{"docs":{},"d":{"docs":{},"t":{"docs":{},"x":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"i":{"docs":{},"i":{"2":{"7":{"3":{"docs":{},"x":{"docs":{},"l":{"2":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"j":{"docs":{},"p":{"6":{"4":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}}},"docs":{}},"docs":{}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}},")":{"docs":{},":":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"d":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"i":{"5":{"docs":{},"t":{"docs":{},"s":{"docs":{},"z":{"docs":{},"y":{"6":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}},"m":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"b":{"docs":{},"q":{"2":{"docs":{},"r":{"docs":{},"n":{"docs":{},"r":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"x":{"docs":{},"r":{"docs":{},"k":{"docs":{},"j":{"docs":{},"k":{"docs":{},"a":{"docs":{},"c":{"5":{"docs":{},"u":{"docs":{},"a":{"docs":{},"c":{"docs":{},"r":{"docs":{},"c":{"6":{"docs":{},"h":{"6":{"docs":{},"c":{"docs":{},"j":{"docs":{},"x":{"docs":{},"c":{"docs":{},"l":{"docs":{},"r":{"2":{"docs":{},"s":{"docs":{},"t":{"docs":{},"t":{"docs":{},"g":{"docs":{},"a":{"docs":{},"a":{"docs":{},"q":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}},"docs":{}}}}},"w":{"docs":{},"z":{"docs":{},"j":{"2":{"docs":{},"k":{"docs":{},"a":{"docs":{},"p":{"docs":{},"f":{"7":{"6":{"docs":{},"w":{"docs":{},"o":{"docs":{},"w":{"docs":{},"m":{"docs":{},"p":{"docs":{},"c":{"docs":{},"j":{"docs":{},"f":{"6":{"docs":{},"b":{"docs":{},"y":{"4":{"docs":{},"q":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{},"t":{"docs":{},"u":{"docs":{},"i":{"docs":{},"y":{"4":{"docs":{},"j":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{},"u":{"4":{"docs":{},"k":{"3":{"docs":{},"y":{"docs":{},"d":{"docs":{},"g":{"3":{"docs":{},"g":{"docs":{},"h":{"docs":{},"i":{"docs":{},"w":{"docs":{},"b":{"docs":{},"v":{"docs":{},"w":{"docs":{},"b":{"docs":{},"h":{"docs":{},"u":{"docs":{},"z":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}}}}},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"p":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.01020408163265306},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.01568627450980392},"nats_docker/":{"ref":"nats_docker/","tf":0.03299856527977044},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.016666666666666666},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}},"s":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},".":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},":":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}},"h":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.008968609865470852}},"s":{"docs":{},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},".":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}},"i":{"docs":{},"r":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01171875},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.010752688172043012},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.03937007874015748},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.044642857142857144},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.03125},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.06040268456375839},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":3.372759856630824},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}},")":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496}},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}},":":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.03571428571428571},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.01098901098901099},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.020134228187919462},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}},"s":{"docs":{},".":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}},",":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}},":":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"t":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"c":{"docs":{},"k":{"docs":{},"a":{"docs":{},"g":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}}}},"r":{"docs":{},"s":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.02286902286902287},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"r":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"โ€”":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"g":{"docs":{},"m":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0234375},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},".":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},"s":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},".":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},":":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"t":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988}}}}}}}},"y":{"docs":{},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.014778325123152709},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.008597883597883597},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.012939001848428836}},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}}}}}}}},"\"":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}},")":{"docs":{},";":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}},":":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"s":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"g":{"docs":{},"e":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}},".":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}}},"b":{"docs":{},"c":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006}}}},"u":{"docs":{},"s":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":2.5108108108108107}}}}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.009202453987730062},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.023622047244094488},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.057692307692307696},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},":":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242}}}}}}}}}},"a":{"docs":{},"n":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"p":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}},"o":{"docs":{},"p":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}},"n":{"docs":{},"d":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.011034482758620689},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}}}}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"=":{"5":{"docs":{},"*":{"1":{"0":{"2":{"4":{"docs":{},"*":{"1":{"0":{"2":{"4":{"docs":{},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"=":{"1":{"0":{"0":{"0":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}},"docs":{}},"docs":{}},"5":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}}}}}}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"d":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"1":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}},"docs":{}}}}}}}},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.006568144499178982},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},".":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}},"'":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}}}}}},"p":{"docs":{},"t":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889}},":":{"docs":{"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}}},"i":{"docs":{},"s":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}},"p":{"docs":{},"a":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"gateways/":{"ref":"gateways/","tf":0.010893246187363835},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"t":{"docs":{},"i":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662}},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}}},"l":{"docs":{},"i":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"t":{"docs":{},"o":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.015822784810126583},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"gateways/":{"ref":"gateways/","tf":0.008714596949891068},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":10.01953601953602},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.029850746268656716},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":5.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":3.3366174055829227},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.018518518518518517},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":5.0137931034482754},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":5.021164021164021},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.016632016632016633},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":3.3536660505237212}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"s":{"docs":{},",":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}}}}},"v":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}},"i":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.011210762331838564},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.029850746268656716},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.01509433962264151},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.054945054945054944},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.03508771929824561},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.030612244897959183},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.028169014084507043},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"s":{"docs":{},".":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}},"s":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}},"c":{"docs":{},"e":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},"s":{"docs":{},"s":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.008275862068965517},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.024390243902439025},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.013513513513513514},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.008771929824561403},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}},"'":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},",":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}},"e":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}},"o":{"docs":{},"f":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}},"s":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"x":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"i":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"e":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}},"e":{"docs":{},"r":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}}},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"r":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}},"e":{"docs":{},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},":":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}}}}}}}}}}}}},"s":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931}},"u":{"docs":{},"r":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"e":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}}}}},"u":{"docs":{},"m":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},"s":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},"l":{"docs":{},"i":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},"o":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}},"t":{"docs":{},"i":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.01556420233463035},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.006329113924050633},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.02127659574468085},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.007352941176470588},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.010338345864661654},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.010617760617760617},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.01813110181311018},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.018404907975460124},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.022388059701492536}},"e":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"c":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}},"n":{"docs":{},"t":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}},"s":{"docs":{},"g":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}},":":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"\"":{"docs":{},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}},"[":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"]":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}},"\"":{"docs":{},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},":":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},"h":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}},"e":{"docs":{},"r":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}},"s":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}},"c":{"docs":{},"e":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}},":":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012}}},";":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},"u":{"docs":{},"n":{"docs":{},"e":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"o":{"docs":{},"p":{"docs":{},"h":{"docs":{},"y":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"i":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"n":{"docs":{},"g":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.035},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":3.3498349834983494},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":5.01},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"=":{"1":{"docs":{},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"2":{"0":{"docs":{},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"docs":{}},"docs":{}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"2":{"0":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005}}}}}}}}}}},"s":{"docs":{},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"d":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.016260162601626018},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},")":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"d":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"i":{"docs":{},"n":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.017921146953405017}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}}},"y":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}}}},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}}},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}},"u":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},"o":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"e":{"docs":{},",":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}}}}}}},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}}}},"i":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/streaming/":{"ref":"developer/streaming/","tf":0.023593466424682397},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.018518518518518517},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.09523809523809523}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}}}}}}},"w":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}},"r":{"docs":{},"t":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.014336917562724014},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.010666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.007653061224489796},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.011655011655011656},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00980392156862745},"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.007473841554559043},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},":":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.01721664275466284},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"a":{"docs":{},"l":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}},"s":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"n":{"docs":{},"g":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.013201320132013201},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.02197802197802198},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},".":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}},"o":{"docs":{},"l":{"docs":{},":":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518}}}}},"l":{"docs":{},"l":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154}}}}},"u":{"docs":{},"b":{"1":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}}},"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.011510791366906475},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0073937153419593345}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.027237354085603113},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.011075949367088608},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0425531914893617},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.008687258687258687},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.028901734104046242},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.024539877300613498},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.026252983293556086},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.014970059880239521},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.016},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.01478494623655914},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.007668711656441718},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},";":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}}}},"s":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.006329113924050633},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.03296703296703297},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.02302158273381295},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.010385756676557863},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.011210762331838564},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.015873015873015872},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.014792899408284023},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.007518796992481203},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.02034428794992175},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.029605263157894735},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":5.063157894736842},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.027472527472527472},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.025210084033613446},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0392156862745098},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.013824884792626729},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.024444444444444446},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":5.084507042253521},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.00831792975970425}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},"r":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"s":{"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},":":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}},"}":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}},";":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}}}},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},".":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.007326007326007326}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"i":{"docs":{},"x":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":3.335555555555555},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"s":{"docs":{},"=":{"1":{"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232}}}},"5":{"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},"docs":{}}},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.011111111111111112},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.01}}}}}},"l":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.016666666666666666}}}},"s":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}},")":{"docs":{"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334}}}}}}}}},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.011494252873563218},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.021505376344086023},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.008353221957040573},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.016042780748663103},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}}},"s":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"y":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"n":{"2":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.006568144499178982},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}},"r":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},"e":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358}}},"y":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609}}}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.01221001221001221},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":5.065934065934066},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.05042016806722689},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":5.016597510373444},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":3.3550724637681157},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":3.3489991296779804},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.03418803418803419},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.007275132275132275},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.008316008316008316},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0073937153419593345}},"c":{"docs":{},"a":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"y":{"docs":{},"|":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}},",":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842}}},";":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}},"}":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}},"=":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},")":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}},"t":{"docs":{},"o":{"docs":{},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}}}}},"o":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}},"r":{"docs":{},"t":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.011655011655011656},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}}}}}},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694}},"i":{"docs":{},"z":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"l":{"docs":{},"i":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}},"d":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.01046337817638266},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}},"i":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.015503875968992248},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"e":{"docs":{},"r":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"s":{"docs":{},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/":{"ref":"developer/","tf":0.01639344262295082}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},"s":{"docs":{},",":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.00530035335689046},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.00510204081632653},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.012949640287769784},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.008902077151335312},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.01293103448275862},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.007722007722007722},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0196078431372549},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":5.025974025974026},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.01201923076923077},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.02},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.042735042735042736},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.02},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":3.3611111111111107},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{},".":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},":":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},":":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"r":{"docs":{},",":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"p":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}},"n":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.02197802197802198}}}}},"o":{"docs":{},"g":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":5.054945054945055},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":5.036363636363636},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":2.541958041958042},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":2.527027027027027},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.017543859649122806},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":3.3703703703703702},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":2.04},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.006720430107526882},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.008316008316008316}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},"=":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"c":{"docs":{},"b":{"docs":{},",":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},":":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811}}}}}}}}}}},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},",":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}},":":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.02727272727272727}}},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"_":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},":":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}},"=":{"1":{"0":{"docs":{},",":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},"docs":{}},"docs":{}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"5":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}},"docs":{}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"u":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},"v":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}},"i":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}}}}}}}},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}}},"u":{"docs":{},"s":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"g":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.008928571428571428},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/streaming/":{"ref":"developer/streaming/","tf":0.009074410163339383},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}},"e":{"docs":{},"x":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"l":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.015789473684210527},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.012106537530266344}},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"d":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}},"v":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.024390243902439025}}}}},"a":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"p":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}}}}}}}}},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}},"m":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.02459016393442623}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"s":{"docs":{},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}},"p":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"d":{"docs":{},"e":{"docs":{},".":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}}},"o":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.007653061224489796},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"_":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}}},"s":{"docs":{},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}},"v":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}},"e":{"docs":{},"m":{"docs":{},"b":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.047619047619047616}}}}}},"q":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.018315018315018316},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.005791505791505791},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":5.043956043956044},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.016597510373443983},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.015527950310559006},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":3.3698868581375105},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.02564102564102564},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"o":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},":":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}}}}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":3.35042735042735}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},":":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}}},"i":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.09523809523809523},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.013605442176870748},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.011450381679389313},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.00949367088607595},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.008676789587852495},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},")":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"(":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}},"โ€˜":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"โ€˜":{"docs":{},")":{"docs":{},";":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},"s":{"docs":{},":":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}},".":{"docs":{},"a":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242}}},"b":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}},"g":{"docs":{},"o":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"l":{"docs":{},"i":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.010666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.04},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":5.0150943396226415},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}}},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},":":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.03296703296703297},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.024539877300613498},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.018633540372670808},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.02610966057441253},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}},")":{"docs":{},":":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}},"\"":{"docs":{},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},")":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},":":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"\"":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.02413793103448276}}},",":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00784313725490196},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}},"s":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"n":{"docs":{},"d":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.008547008547008548},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.03067484662576687},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00954653937947494},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.016042780748663103},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.028169014084507043},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"s":{"docs":{},".":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}}}}},"r":{"docs":{},"i":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"e":{"docs":{},"v":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.024390243902439025}}}}}},"v":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}},"c":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"u":{"docs":{},"s":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"_":{"docs":{},"u":{"docs":{},"n":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{},"u":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},"l":{"docs":{},"i":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}},"i":{"docs":{},"z":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}}}}}}}}},"k":{"docs":{},"=":{"docs":{},"s":{"docs":{},"a":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"=":{"docs":{},"l":{"docs":{},"r":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},";":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}},"g":{"docs":{"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358}},"e":{"docs":{},"(":{"0":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}}}}},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"w":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"q":{"docs":{},"u":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}}}}},"t":{"docs":{},"e":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}},"s":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"r":{"docs":{},"e":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426}},"@":{"docs":{},"d":{"1":{"2":{"docs":{},"f":{"9":{"docs":{},"f":{"3":{"docs":{},"f":{"docs":{},"c":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},":":{"docs":{},"/":{"docs":{},"g":{"docs":{},"o":{"docs":{},"#":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}}},"m":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"u":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0625},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.0761904761904762},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.05555555555555555},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.01568627450980392},"nats_docker/":{"ref":"nats_docker/","tf":0.027259684361549498},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},"=":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571}}}}}}},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"4":{"6":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}},"docs":{}},"docs":{}},"docs":{}},"5":{"2":{"2":{"2":{"docs":{},"/":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{},"[":{"docs":{},"\"":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"}":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"5":{"9":{"docs":{},".":{"1":{"0":{"3":{"docs":{},":":{"7":{"2":{"4":{"4":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947}},")":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},"6":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}},"8":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"4":{"docs":{},":":{"7":{"2":{"4":{"4":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"6":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"1":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"1":{"docs":{},"@":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"4":{"5":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}},"2":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"2":{"docs":{},"@":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"2":{"4":{"6":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}}},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{},"t":{"0":{"docs":{},"p":{"docs":{},"s":{"3":{"docs":{},"c":{"docs":{},"r":{"3":{"docs":{},"t":{"docs":{},"@":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"6":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}}}}},":":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"_":{"docs":{},"u":{"docs":{},"s":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}}}},"z":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"i":{"docs":{},"n":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}},"n":{"docs":{},"d":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.021897810218978103},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.016260162601626018},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"l":{"docs":{},"e":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.006329113924050633},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"l":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"w":{"docs":{},".":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}},"u":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/running.html":{"ref":"nats_server/running.html","tf":10.023255813953488},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.02459016393442623},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.006377551020408163},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.021520803443328552},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.022222222222222223},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.01293103448275862},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.014792899408284023},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.007462686567164179},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.01564945226917058},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.035555555555555556},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.042735042735042736},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.04},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"(":{"docs":{},"l":{"docs":{},"o":{"docs":{},"o":{"docs":{},"p":{"docs":{},")":{"docs":{},":":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},"l":{"docs":{},"e":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}},"s":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}},"r":{"docs":{},"l":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}},"b":{"docs":{},"i":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.01293103448275862},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.016666666666666666},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.008210180623973728},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.006720430107526882},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}},"d":{"docs":{},":":{"1":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.01403061224489796},"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947}}},"2":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.01403061224489796},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}}},"c":{"docs":{},"h":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}},"n":{"docs":{},"g":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}}}},"f":{"docs":{},"c":{"7":{"5":{"1":{"9":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}},"c":{"1":{"1":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"docs":{}},"5":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656}}}}},"9":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"docs":{}},"m":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}}},"y":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"1":{"docs":{},":":{"1":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"docs":{}}},"5":{"docs":{},":":{"1":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"docs":{}}},"docs":{},":":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}},"s":{"3":{"docs":{},"c":{"docs":{},"r":{"3":{"docs":{},"t":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}}},"docs":{}}}},"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.008244994110718492},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":5.0476190476190474},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":10.015625},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":5.035087719298246},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}},":":{"docs":{"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616}}}}}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"s":{"docs":{},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},")":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}},":":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333}}}},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}},"s":{"docs":{},".":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}}}},"n":{"docs":{},"s":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}},"s":{"docs":{},".":{"docs":{},">":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.009422850412249705},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"gateways/":{"ref":"gateways/","tf":0.013071895424836602},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.01098901098901099},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.03896103896103896},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":5.026666666666666},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.015527950310559006},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.018276762402088774},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.013201320132013201},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":3.353333333333333},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/":{"ref":"developer/streaming/","tf":0.010889292196007259},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.00831792975970425}},"e":{"docs":{},"r":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0196078431372549},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.011479591836734694},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.008547008547008548},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.012704174228675136},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}},"r":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.02666666666666667},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0076560659599528855},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":5.032786885245901},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.012658227848101266},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.017241379310344827},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":10.03088803088803},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},".":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.040983606557377046},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}},":":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"โ€™":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}}}}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.012956419316843345},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.09473684210526316},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.08527131782945736},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.09836065573770492},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.060126582278481014},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.03942652329749104},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.037333333333333336},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.030612244897959183},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.031496062992125984},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.036036036036036036},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.03571428571428571},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.011450381679389313},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.01740506329113924},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.046875},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.058673469387755105},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.01904761904761905},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.044444444444444446},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.01856763925729443},"leafnodes/":{"ref":"leafnodes/","tf":0.031654676258992806},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0364963503649635},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"nats_admin/":{"ref":"nats_admin/","tf":3.487179487179487},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.058823529411764705},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.020689655172413793},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.15447154471544716},"sys_accounts/":{"ref":"sys_accounts/","tf":0.12},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.04451038575667656},"nats_docker/":{"ref":"nats_docker/","tf":0.05595408895265423},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.03888888888888889},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.021551724137931036},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.02466367713004484},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.05569007263922518},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.10546875},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.026862026862026864},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.040268456375838924},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.02127659574468085},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.023109243697478993},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":3.453333333333333},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.04633781763826607},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.01509433962264151},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01092896174863388},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.016791044776119403},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.010954616588419406},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.019867549668874173},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.029850746268656716},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":3.341463414634146},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":3.3538812785388123},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.033962264150943396},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.013136288998357963},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.08791208791208792},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.02702702702702703},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.03508771929824561},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.014336917562724014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.01507537688442211},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.024539877300613498},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00954653937947494},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.05194805194805195},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.02403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0165016501650165},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.01478494623655914},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.007668711656441718},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.011111111111111112},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.015},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669},"developer/streaming/":{"ref":"developer/streaming/","tf":0.018148820326678767},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.030612244897959183},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.03409090909090909},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.032407407407407406},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.02079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.056377079482439925}},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},";":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01171875},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01171875},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.02197802197802198},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.03508771929824561},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0073937153419593345}},"z":{"docs":{},"i":{"docs":{},"p":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.015789473684210527}}}}},"e":{"docs":{},"x":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.04918032786885246}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},"\"":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},"`":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},";":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}},"=":{"docs":{},"[":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"/":{"docs":{},"v":{"2":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"/":{"docs":{},"m":{"docs":{},"k":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"d":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308}}}}}}}}}}}}}}}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}}}},"โ€™":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}},"'":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"\"":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},"]":{"docs":{},";":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"[":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}}}}}}},"]":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"(":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"1":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}},"3":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}},"4":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}},"docs":{}},"docs":{}},"docs":{}},"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},",":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}}},"f":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.009453781512605041},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01092896174863388},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":3.358333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.013136288998357963},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":2.541958041958042},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.016216216216216217},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.010752688172043012},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.008353221957040573},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.008064516129032258},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.012269938650306749},"developer/streaming/":{"ref":"developer/streaming/","tf":0.009074410163339383},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.045454545454545456},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"u":{"docs":{},"p":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}},"s":{"docs":{},",":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}},":":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},":":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},":":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}}},".":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}},"e":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.015},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"n":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},"d":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.01020408163265306},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.022388059701492536}},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}},"'":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.017777777777777778},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},".":{"docs":{},".":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"m":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":3.333333333333333}},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}}}}},"g":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":5.068627450980392},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}},"f":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}},",":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}},"r":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164}},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}},",":{"docs":{"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}},"(":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"h":{"docs":{},":":{"docs":{},"m":{"docs":{},"m":{"docs":{},":":{"docs":{},"s":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}},"u":{"docs":{},"l":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}},"d":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},",":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},"s":{"docs":{},".":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}}}},"g":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":5.052998605299861},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}},"l":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.03278688524590164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":10.089430894308943}},":":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}},"s":{"docs":{},",":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}}},":":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},"e":{"docs":{},"r":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"d":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}},"n":{"docs":{},"g":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},".":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}},"(":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"[":{"docs":{},"]":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}}}}}},"c":{"docs":{},"b":{"docs":{},":":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}},"u":{"docs":{},"s":{"docs":{},"r":{"1":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}},"2":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}},"docs":{}}}},"h":{"docs":{},"u":{"docs":{},"p":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}},"k":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}}},"l":{"docs":{},"o":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.023622047244094488},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.015665796344647518},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}},"z":{"docs":{},"e":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0180623973727422},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.022857142857142857},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005291005291005291},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},".":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}},"e":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}},"t":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":3.3538812785388123},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.018518518518518517}},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.00949367088607595},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.03937007874015748},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.046875},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.016483516483516484},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.00510204081632653},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.02247191011235955},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.011210762331838564},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.015625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.01098901098901099},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.01046337817638266},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}}},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"a":{"docs":{},"l":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},",":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}},"t":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"e":{"docs":{},"d":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}}}},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.00530035335689046},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}},"o":{"docs":{},"f":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"r":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"t":{"docs":{},"r":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.00530035335689046},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.012658227848101266},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.04708520179372197},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.05084745762711865},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.06640625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.03663003663003663},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.038461538461538464},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":10.024436090225564},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.039927404718693285},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":3.3945578231292513},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.028169014084507043},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.013157894736842105}}},"_":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852}}}}}}}},"#":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219}}},"/":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},":":{"0":{"docs":{},".":{"9":{"docs":{},".":{"2":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}}},"docs":{}}},"docs":{}},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},",":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006}}},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.017341040462427744}}},":":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"โ€™":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006}}}}}},"a":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}},"y":{"docs":{},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"u":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.013431013431013432},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":5.005988023952096},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":3.341333333333333},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.011933174224343675},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.005422993492407809},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.011976047904191617},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.016},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.014553014553014554},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"s":{"docs":{},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}}}}},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"c":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.03875968992248062},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.015822784810126583},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.00510204081632653},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.01568627450980392},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_docker/":{"ref":"nats_docker/","tf":0.014347202295552367},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.016666666666666666},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.021791767554479417},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.02127659574468085},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.014084507042253521},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.015555555555555555},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.027777777777777776},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}}},",":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}}},"t":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.04},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},",":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}}}},"c":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.02386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},",":{"docs":{"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334}}}}},"u":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}},"s":{"docs":{},":":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}},".":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},"s":{"docs":{},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.017214397496087636}}}}},"n":{"docs":{},"d":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}},"a":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}}},"r":{"docs":{},"d":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"docs":{},"_":{"8":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"docs":{}}}}}}}}}}}}}}}}}},":":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.043583535108958835}}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"(":{"docs":{},"n":{"docs":{},"c":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"(":{"docs":{},"โ€œ":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"โ€":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"2":{"2":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}},"docs":{}},"docs":{}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"a":{"docs":{},"w":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"(":{"2":{"5":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"l":{"docs":{},"e":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005}}}},"y":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"o":{"docs":{},"p":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.01639344262295082},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.032520325203252036},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}},"=":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}}}}}}}}}}}}}}}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"r":{"docs":{},"e":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.008403361344537815},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.005578800557880056},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.02666666666666667},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.02092675635276532},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.007159904534606206},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.010395010395010396}},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"r":{"docs":{},"a":{"docs":{},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},".":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}},"a":{"docs":{},"g":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852}},"e":{"docs":{},")":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"c":{"docs":{},"k":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}},":":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"=":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.03289473684210526},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.042105263157894736},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.02197802197802198},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.026490066225165563},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0196078431372549},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.013824884792626729},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.012422360248447204}}},";":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}}}}}}}}}},"d":{"docs":{},"o":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219}},".":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}}}},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}}}}},"k":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"=":{"1":{"2":{"0":{"0":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.02631578947368421},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"sys_accounts/":{"ref":"sys_accounts/","tf":0.04},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.02666666666666667},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.006237006237006237}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"l":{"docs":{},"i":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"e":{"docs":{},"r":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}}}}}}}}}}}}}},"b":{"1":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.019736842105263157},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}},"[":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{},"=":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},",":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}}}}}}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"0":{"0":{"docs":{},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"2":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.019736842105263157},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}},".":{"docs":{},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}},"docs":{}},"docs":{}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"3":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.021052631578947368},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.02197802197802198},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}}},"4":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}}},"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.012658227848101266},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.011764705882352941},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.013059701492537313},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0196078431372549},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.009242144177449169}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.014134275618374558},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.011450381679389313},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.01740506329113924},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.04120879120879121},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.009655172413793104},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.011210762331838564},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.04395604395604396},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.012218045112781954},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.011583011583011582},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.01935483870967742},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":3.4122807017543857},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.08421052631578947},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.038461538461538464},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.039735099337748346},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.03361344537815126},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.058823529411764705},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.02304147465437788},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.021739130434782608},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":3.3550724637681157},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.010443864229765013},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.015555555555555555},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.023148148148148147},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.02310536044362292}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},")":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495}}},":":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414}}}}}}}}}},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},"'":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"=":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.00949367088607595},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.006329113924050633},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.03296703296703297},"gateways/":{"ref":"gateways/","tf":0.013071895424836602},"leafnodes/":{"ref":"leafnodes/","tf":0.01870503597122302},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.012413793103448275},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.025806451612903226},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.013157894736842105},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":5.052631578947368},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.039735099337748346},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.026845637583892617},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.014354066985645933},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.009761388286334056},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.012422360248447204},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.009202453987730062},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.03777777777777778},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.045},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.02413793103448276},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005952380952380952},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.00831792975970425}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931}}},"_":{"1":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}},"2":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}},"docs":{}}},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"p":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.008928571428571428},"gateways/":{"ref":"gateways/","tf":0.015250544662309368},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.013452914798206279},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.008547008547008548},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":5.053691275167785},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":5.014354066985646},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0472972972972973},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.019230769230769232},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":5},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":5.009316770186335},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.014035087719298246},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.015527950310559006},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/streaming/":{"ref":"developer/streaming/","tf":0.036297640653357534},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.018518518518518517},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":5.119047619047619},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":5.08},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.014553014553014554},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0073937153419593345}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.03896103896103896},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}},",":{"docs":{"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663}},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.004884004884004884}},"e":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}}}}}}}}}},":":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}}}}}}}}}}},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"=":{"0":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}}},"1":{"docs":{},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}},"5":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}}},"docs":{}},"z":{"docs":{},".":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"1":{"0":{"2":{"4":{"docs":{},"*":{"5":{"0":{"0":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"_":{"0":{"0":{"0":{"docs":{},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"g":{"docs":{},"(":{"1":{"0":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}},"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}},"docs":{},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}},";":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.013513513513513514}}}}}}}}}}}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"1":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}}}}},"docs":{}}}}}}}}}}}}}}}}},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.011111111111111112},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.016483516483516484},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.025210084033613446},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"s":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}},",":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.037037037037037035},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}},"|":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842}}},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},":":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}},"c":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}},"c":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},",":{"docs":{"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}}}},"s":{"docs":{},"s":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931}},"!":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.005639097744360902},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.00697350069735007},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.011320754716981131}}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"i":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}},".":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},"e":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"i":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}},"i":{"docs":{},"t":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}},"a":{"docs":{},"c":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"3":{"docs":{},"u":{"docs":{},"a":{"docs":{},"h":{"docs":{},"u":{"docs":{},"d":{"docs":{},"x":{"docs":{},"k":{"docs":{},"f":{"docs":{},"s":{"docs":{},"n":{"docs":{},"v":{"docs":{},"u":{"docs":{},"z":{"docs":{},"r":{"docs":{},"f":{"5":{"docs":{},"u":{"docs":{},"h":{"docs":{},"p":{"docs":{},"m":{"docs":{},"w":{"docs":{},"z":{"6":{"docs":{},"b":{"docs":{},"f":{"docs":{},"d":{"docs":{},"t":{"docs":{},"j":{"7":{"docs":{},"m":{"6":{"docs":{},"u":{"docs":{},"s":{"docs":{},"d":{"docs":{},"x":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},"n":{"docs":{},"p":{"docs":{},"p":{"docs":{},"q":{"docs":{},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},"c":{"docs":{},"u":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}},"o":{"docs":{},"y":{"5":{"docs":{},"j":{"docs":{},"z":{"2":{"docs":{},"w":{"docs":{},"j":{"docs":{},"k":{"docs":{},"v":{"docs":{},"r":{"4":{"docs":{},"u":{"docs":{},"o":{"2":{"docs":{},"k":{"docs":{},"j":{"2":{"docs":{},"p":{"3":{"docs":{},"s":{"docs":{},"w":{"6":{"docs":{},"f":{"docs":{},"z":{"docs":{},"f":{"docs":{},"n":{"docs":{},"w":{"docs":{},"e":{"docs":{},"o":{"docs":{},"i":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"f":{"4":{"docs":{},"w":{"docs":{},"z":{"docs":{},"e":{"docs":{},"u":{"docs":{},"n":{"docs":{},"v":{"docs":{},"q":{"docs":{},"x":{"docs":{},"x":{"docs":{},"u":{"docs":{},"o":{"docs":{},"k":{"docs":{},"g":{"docs":{},"m":{"5":{"5":{"docs":{},"c":{"docs":{},"y":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}}}},"m":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534}}},"r":{"docs":{},"i":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.02}}}}}},"y":{"docs":{},")":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"r":{"docs":{},"e":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}},"v":{"docs":{},"i":{"docs":{},"v":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}}}}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"d":{"docs":{},"o":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00819672131147541},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"y":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.015901060070671377},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/":{"ref":"sys_accounts/","tf":5.08},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.019287833827893175},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"l":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}},"k":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}},"\"":{"docs":{},"t":{"docs":{},"h":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}},"a":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},",":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}}}},"_":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.01824817518248175}},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},"/":{"docs":{},"/":{"docs":{},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"2":{"6":{"9":{"0":{"0":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"n":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"โ€™":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"'":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}},"t":{"docs":{},"a":{"docs":{},"x":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.005291005291005291},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0073937153419593345}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},".":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}},"c":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"c":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":5.02013422818792},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},"o":{"docs":{},"u":{"docs":{},"s":{"docs":{},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}}}},".":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},"{":{"docs":{},"}":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},";":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.01171875},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.016216216216216217},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.03896103896103896},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},"p":{"docs":{},"l":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"v":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"e":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}},"n":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}},"f":{"docs":{},"e":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}},"t":{"docs":{},"i":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},"r":{"docs":{},",":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}},"o":{"docs":{},"p":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"y":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.010775862068965518},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"a":{"docs":{},"k":{"3":{"docs":{},"e":{"docs":{},"l":{"5":{"docs":{},"b":{"docs":{},"w":{"4":{"docs":{},"z":{"docs":{},"o":{"docs":{},"r":{"7":{"docs":{},"j":{"docs":{},"v":{"docs":{},"t":{"docs":{},"x":{"docs":{},"z":{"4":{"docs":{},"t":{"docs":{},"j":{"6":{"docs":{},"r":{"docs":{},"q":{"docs":{},"b":{"docs":{},"s":{"docs":{},"o":{"docs":{},"i":{"docs":{},"x":{"docs":{},"k":{"2":{"7":{"docs":{},"a":{"docs":{},"f":{"docs":{},"p":{"docs":{},"p":{"docs":{},"s":{"docs":{},"y":{"docs":{},"v":{"docs":{},"p":{"4":{"docs":{},"k":{"docs":{},"d":{"docs":{},"h":{"docs":{},"j":{"docs":{},"k":{"docs":{},"s":{"docs":{},"r":{"docs":{},"q":{"docs":{},"f":{"docs":{},"v":{"docs":{},"r":{"docs":{},"a":{"docs":{},"h":{"docs":{},"i":{"docs":{},"a":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}},"docs":{}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"s":{"docs":{},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},",":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}},".":{"docs":{},"e":{"docs":{},"x":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.03278688524590164}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.037037037037037035},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},",":{"docs":{"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612}}}},"h":{"docs":{},"a":{"2":{"5":{"6":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},":":{"4":{"7":{"docs":{},"b":{"8":{"2":{"5":{"docs":{},"f":{"docs":{},"e":{"docs":{},"b":{"3":{"4":{"docs":{},"e":{"5":{"4":{"5":{"3":{"1":{"7":{"docs":{},"c":{"4":{"docs":{},"a":{"docs":{},"d":{"1":{"2":{"2":{"docs":{},"b":{"docs":{},"d":{"1":{"docs":{},"a":{"7":{"5":{"2":{"docs":{},"a":{"3":{"1":{"7":{"2":{"docs":{},"b":{"docs":{},"b":{"docs":{},"b":{"docs":{},"c":{"7":{"2":{"1":{"0":{"4":{"docs":{},"f":{"docs":{},"c":{"7":{"docs":{},"f":{"docs":{},"b":{"5":{"docs":{},"e":{"5":{"7":{"docs":{},"c":{"docs":{},"f":{"9":{"0":{"docs":{},"f":{"7":{"9":{"docs":{},"e":{"4":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}},"docs":{}},"docs":{}}},"docs":{}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}},"docs":{}},"docs":{}},"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"r":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0076560659599528855},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"d":{"docs":{},".":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"d":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}}},"p":{"docs":{},"e":{"docs":{},"=":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},";":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}}}}}}}}},"o":{"docs":{},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"n":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"s":{"docs":{},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}},"r":{"docs":{},"t":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}}}},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889}},")":{"docs":{},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}}},"u":{"docs":{},"t":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.02}}}}}}},"f":{"docs":{},"f":{"docs":{},"l":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"r":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}},"r":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"o":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"l":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}}}},"d":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}},"e":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.056910569105691054},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0410958904109589},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.022641509433962263},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.03333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.02},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0180623973727422},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.013824884792626729},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.03636363636363636},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.027972027972027972},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.021621621621621623},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.023391812865497075},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.018518518518518517},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.021505376344086023},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.03015075376884422},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0059665871121718375},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.008064516129032258},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.007668711656441718}}},"i":{"docs":{},"m":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}}}}},"w":{"docs":{},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},"e":{"docs":{},"r":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"o":{"docs":{},"n":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}},"f":{"docs":{},"t":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"a":{"docs":{},"i":{"docs":{},"h":{"docs":{},"s":{"docs":{},"q":{"docs":{},"s":{"docs":{},"a":{"docs":{},"m":{"3":{"docs":{},"z":{"docs":{},"j":{"docs":{},"i":{"5":{"docs":{},"w":{"6":{"docs":{},"u":{"5":{"docs":{},"m":{"4":{"docs":{},"i":{"docs":{},"n":{"docs":{},"h":{"7":{"docs":{},"f":{"docs":{},"u":{"docs":{},"c":{"docs":{},"q":{"docs":{},"q":{"5":{"docs":{},"e":{"docs":{},"t":{"docs":{},"j":{"5":{"docs":{},"r":{"docs":{},"m":{"docs":{},"p":{"docs":{},"v":{"docs":{},"j":{"docs":{},"z":{"docs":{},"c":{"docs":{},"j":{"docs":{},"l":{"docs":{},"t":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"y":{"6":{"docs":{},"z":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"6":{"docs":{},"l":{"docs":{},"z":{"docs":{},"q":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}}}},"docs":{}}}}}}}}},"r":{"docs":{},"t":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.02185792349726776},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.016791044776119403},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}},",":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}},"o":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"l":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}},"o":{"docs":{},"w":{"docs":{"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":5.038620689655173},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":5.019938650306749}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}},"l":{"docs":{},"i":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"g":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786}},"l":{"docs":{},"i":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}},"c":{"docs":{},"e":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"k":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415}},"i":{"docs":{},"p":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}},".":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"(":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}}}}}}}}},"r":{"docs":{},"c":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":5.004310344827586},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":5.017751479289941}}}}},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}},"s":{"docs":{},"l":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"(":{"docs":{},"p":{"docs":{},"u":{"docs":{},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"=":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},".":{"docs":{},"p":{"docs":{},"u":{"docs":{},"r":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"_":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"'":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"'":{"docs":{},"c":{"docs":{},"a":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0059665871121718375}},"(":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{},".":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"_":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"(":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"2":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"s":{"2":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}},"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"f":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"docs":{},"_":{"8":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"0":{"docs":{},"p":{"docs":{},"s":{"3":{"docs":{},"c":{"docs":{},"r":{"3":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}},"t":{"0":{"0":{"docs":{},"!":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}}},"docs":{}},"docs":{}}}},"docs":{}}}},"docs":{}}}},"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.02413793103448276},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984}},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},"a":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"c":{"docs":{},"h":{"docs":{},"n":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213}},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}},"y":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"t":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"r":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"i":{"docs":{},"n":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096}}}}}}},"s":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}},"s":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.016666666666666666},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.005252100840336135},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"2":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}},"x":{"docs":{},"t":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.017921146953405017},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}},"i":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.007751937984496124},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.01046337817638266},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.02074688796680498},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.026030368763557483},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.010443864229765013},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},":":{"1":{"5":{"2":{"6":{"9":{"4":{"8":{"6":{"0":{"0":{"7":{"9":{"5":{"3":{"6":{"6":{"7":{"8":{"5":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"4":{"6":{"1":{"3":{"7":{"8":{"3":{"3":{"9":{"9":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"1":{"2":{"4":{"2":{"5":{"8":{"2":{"6":{"9":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.02040816326530612},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":5.109375},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":3.3666666666666663},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},",":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"s":{"docs":{},",":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}}},".":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}},"=":{"1":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},"docs":{}},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},".":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}},"*":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}},",":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}}},"e":{"docs":{},"u":{"docs":{},".":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},".":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}}}},"u":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578}}}}},".":{"docs":{},"*":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}},">":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.013157894736842105}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052}}}}},".":{"docs":{},"a":{"docs":{},"t":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052}}}}},",":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"w":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},")":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},"(":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}},".":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}}}}}}}}}}}}}}},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"f":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"/":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"_":{"docs":{},"y":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"u":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"/":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"w":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}}}},"r":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.016666666666666666},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}},"?":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}},")":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}},"_":{"docs":{},"a":{"docs":{},"s":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}},";":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}}},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}},"a":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"k":{"docs":{},"e":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"b":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},":":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}},"s":{"docs":{},"k":{"docs":{"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}},"l":{"docs":{},"k":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}}}}},"p":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},".":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},"i":{"docs":{},"l":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}},"'":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},"โ€™":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"s":{"docs":{},"e":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}}},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"(":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},"s":{"docs":{},".":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},",":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}},"r":{"docs":{},"d":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}},".":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}},",":{"docs":{"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806}}}}}},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.006535947712418301},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}},"a":{"docs":{},"d":{"docs":{},"s":{"docs":{},".":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}},",":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.009655172413793104},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.007259528130671506},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.010954616588419406},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}}}}}},"w":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.010739856801909307}}},"t":{"docs":{},"t":{"docs":{},"l":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}}}}}}}},"u":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":3.3450292397660815}}}}}},"s":{"docs":{},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}},"a":{"docs":{},"t":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}},".":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.017921146953405017},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/securing_nats.html":{"ref":"nats_server/securing_nats.html","tf":0.047619047619047616},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":5.068027210884353},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":5.034351145038168},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.0625},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.02857142857142857},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":5.022222222222222},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.07303370786516854},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.03125},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.04477611940298507},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.03508771929824561},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":3.350039777247414},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454}},"s":{"docs":{},":":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103}},"/":{"docs":{},"/":{"docs":{},":":{"docs":{},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},".":{"docs":{"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}},"=":{"docs":{},".":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}},"=":{"docs":{},".":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}},"=":{"docs":{},".":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"_":{"docs":{},"e":{"docs":{},"c":{"docs":{},"d":{"docs":{},"h":{"docs":{},"e":{"docs":{},"_":{"docs":{},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"_":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"a":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"1":{"2":{"8":{"docs":{},"_":{"docs":{},"g":{"docs":{},"c":{"docs":{},"m":{"docs":{},"_":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"2":{"5":{"6":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"=":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"t":{"docs":{},"x":{"docs":{},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}},"/":{"1":{"docs":{},".":{"2":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"docs":{}}},"docs":{}}}},"o":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"d":{"docs":{},"a":{"docs":{},"y":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},";":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}},":":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}},"g":{"docs":{},"l":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.023622047244094488},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":10.09009009009009},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.011278195488721804},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.009652509652509652},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/security/token.html":{"ref":"developer/security/token.html","tf":5.045226130653266},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},")":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992}},".":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007}}}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.016},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407}}},"=":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},";":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}}}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},",":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"s":{"docs":{},")":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},",":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},"!":{"docs":{},"\"":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}},"\"":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.06315789473684211},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},":":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}},".":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}},")":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},"s":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}},"k":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"p":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":5.049180327868853},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.029850746268656716},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306}},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"y":{"docs":{},".":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},",":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.005597014925373134}}},"i":{"docs":{},"c":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"s":{"docs":{},".":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},",":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}}}}}},"\"":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}},",":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}}},"'":{"docs":{},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}},"]":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}},"e":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.014598540145985401},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},",":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005}}},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}},"n":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}},"a":{"docs":{},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"i":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.003826530612244898},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.02197802197802198},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.021621621621621623},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"c":{"docs":{},"k":{"docs":{},"i":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}},"p":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"u":{"docs":{},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"s":{"docs":{},"t":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.007911392405063292},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"[":{"docs":{},"]":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},"y":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"l":{"docs":{},"g":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"m":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}},"e":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.01046337817638266},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}},":":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}},"o":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}},"y":{"docs":{},":":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}},"w":{"docs":{},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}},"o":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00784313725490196},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},".":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.006568144499178982},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}},"(":{"docs":{},"e":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}},"i":{"docs":{},"c":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"=":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036}}}}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.014778325123152709},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":3.3609831029185866},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.03508771929824561},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":10.011111111111111},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":10.001865671641792},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/tutorials/intro.html":{"ref":"developer/tutorials/intro.html","tf":11},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},".":{"docs":{"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}}}}}}},"n":{"docs":{},"e":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}},"c":{"docs":{},"p":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"/":{"docs":{},"i":{"docs":{},"p":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}}}}}},"s":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"'":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.016042780748663103},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.010752688172043012}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}},"t":{"docs":{},"h":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}}}},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},".":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{},";":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}}}}},"u":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}},"s":{"docs":{"./":{"ref":"./","tf":0.02631578947368421},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.007067137809187279},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.02459016393442623},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.008},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.017006802721088437},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.02702702702702703},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.019083969465648856},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.019455252918287938},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.011075949367088608},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.01098901098901099},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.007653061224489796},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/":{"ref":"gateways/","tf":0.008714596949891068},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.02247191011235955},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.010948905109489052},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.008275862068965517},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.016260162601626018},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"nats_docker/":{"ref":"nats_docker/","tf":0.014347202295552367},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.03515625},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.013431013431013432},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.020134228187919462},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0063025210084033615},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.005578800557880056},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.03278688524590164},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.019736842105263157},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.02197802197802198},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.019867549668874173},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.029850746268656716},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.02197802197802198},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.05263157894736842},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.021505376344086023},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.020100502512562814},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00954653937947494},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.014354066985645933},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.013015184381778741},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.015527950310559006},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.015665796344647518},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.024444444444444446},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.017094017094017096},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.01},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669},"developer/streaming/":{"ref":"developer/streaming/","tf":0.023593466424682397},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.027777777777777776},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.02413793103448276},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.011243386243386243},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.016632016632016633},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},"a":{"docs":{},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004122497055359246},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}},"e":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0088339222614841},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.09448818897637795},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.030534351145038167},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.023346303501945526},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.023734177215189875},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.016483516483516484},"leafnodes/":{"ref":"leafnodes/","tf":0.03741007194244604},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.010385756676557863},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.02734375},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.031578947368421054},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.011554621848739496},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.016736401673640166},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.01509433962264151},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":3.354838709677419},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.05223880597014925},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":10.017857142857142},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02}}},"โ€™":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},":":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625}}}},":":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}}},"'":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"b":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},".":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}},":":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},":":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}},",":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714}}},":":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}},"\"":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.01735357917570499}}}}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}},"l":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}},"i":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"x":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},"q":{"docs":{},"u":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.025974025974025976},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.009316770186335404},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.005221932114882507},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},"e":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},";":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"i":{"docs":{},"k":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.008403361344537815},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.02443609022556391},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.025096525096525095},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.012552301255230125},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.026415094339622643}}}}}}},"z":{"docs":{},"i":{"docs":{},"p":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}},".":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842}}}}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}}}}}}},"b":{"docs":{},"l":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}},"c":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"g":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.008968609865470852},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.003968253968253968},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.006469500924214418}},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":10.010135135135135},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":3.3573717948717947},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.007017543859649123},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.003968253968253968},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.005545286506469501}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.003663003663003663}}}}}}}}},":":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296}}},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"s":{"docs":{},".":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}}},"t":{"docs":{},"o":{"docs":{},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}},"i":{"docs":{},"l":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}},"u":{"docs":{},"s":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"p":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"nats_docker/":{"ref":"nats_docker/","tf":0.00430416068866571},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.013201320132013201},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.02666666666666667},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"s":{"docs":{},".":{"1":{"docs":{},",":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}},"2":{"docs":{},",":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}},"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"*":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}},":":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"d":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}},"o":{"docs":{},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_admin/":{"ref":"nats_admin/","tf":0.038461538461538464},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":5.015686274509804}},"e":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}}}}}}}},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.005889281507656066},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.013422818791946308},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}},"c":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.004699248120300752},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.004826254826254826},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}},"f":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"r":{"docs":{},"l":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.010752688172043012},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.006377551020408163},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0031512605042016808},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.029850746268656716},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.02054794520547945},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.018867924528301886},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.04395604395604396},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.014336917562724014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.035175879396984924},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}},":":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}},",":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},"(":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"9":{"0":{"9":{"0":{"docs":{},"/":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"/":{"docs":{},"v":{"1":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},")":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},")":{"docs":{},".":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},";":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129}}}},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407}}}}},"s":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}},"d":{"docs":{},"p":{"docs":{},":":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"5":{"1":{"4":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"x":{"docs":{},"u":{"4":{"docs":{},"r":{"docs":{},"c":{"docs":{},"s":{"docs":{},"j":{"docs":{},"n":{"docs":{},"z":{"docs":{},"o":{"docs":{},"i":{"docs":{},"q":{"docs":{},"h":{"docs":{},"z":{"docs":{},"n":{"docs":{},"w":{"docs":{},"x":{"docs":{},"h":{"docs":{},"x":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"p":{"docs":{},"r":{"docs":{},"t":{"docs":{},"g":{"docs":{},"n":{"docs":{},"j":{"docs":{},"a":{"docs":{},"h":{"docs":{},"a":{"docs":{},"h":{"docs":{},"f":{"docs":{},"r":{"docs":{},"g":{"docs":{},"z":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"j":{"docs":{},"c":{"docs":{},"p":{"docs":{},"q":{"docs":{},"t":{"docs":{},"t":{"2":{"docs":{},"m":{"7":{"docs":{},"n":{"docs":{},"l":{"docs":{},"c":{"docs":{},"n":{"docs":{},"f":{"4":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.007782101167315175},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835}}},"docs":{}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"y":{"docs":{},"k":{"docs":{},"z":{"docs":{},"h":{"docs":{},"l":{"docs":{},"x":{"docs":{},"f":{"docs":{},"h":{"5":{"6":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"docs":{}},"docs":{}}}}}}}}}},"c":{"docs":{},"d":{"2":{"docs":{},"z":{"docs":{},"r":{"docs":{},"u":{"docs":{},"k":{"5":{"docs":{},"p":{"docs":{},"o":{"2":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"docs":{}}}},"docs":{}}}}}},"docs":{}},"q":{"docs":{},"b":{"7":{"docs":{},"n":{"docs":{},"o":{"docs":{},"n":{"docs":{},"b":{"docs":{},"k":{"docs":{},"r":{"docs":{},"c":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}},"docs":{}}}},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{},",":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}}},"w":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612}}}},"s":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}}},"y":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.007067137809187279},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},",":{"docs":{"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}},"s":{"docs":{},":":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}},"i":{"docs":{},"t":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.004484304932735426},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.021621621621621623},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.023923444976076555},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.013015184381778741},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.012422360248447204},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.012280701754385965},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.013054830287206266},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0165016501650165},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.009074410163339383},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.03409090909090909},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},".":{"docs":{"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406}}},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"n":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},"q":{"docs":{},"s":{"docs":{},"/":{"docs":{},"r":{"docs":{},"u":{"docs":{},"b":{"docs":{},"i":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}}}}}}}}}},"k":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}},"t":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.013157894736842105},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}},"k":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},":":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"e":{"docs":{},"r":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404}}}}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}}}}}},".":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"l":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}},"!":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}}}},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}},",":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}},"t":{"docs":{},"h":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.009615384615384616},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}},".":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}},"โ€™":{"docs":{},"t":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808}}}}}},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},".":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"\"":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},")":{"docs":{},";":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},";":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334}}}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"docs":{},"_":{"8":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},"โ€":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}}}},"b":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}},"โ€™":{"docs":{},"l":{"docs":{},"l":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{},"=":{"2":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}},"docs":{}}}}}}},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{},"'":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":3.3339222614840986}}},"s":{"docs":{},"o":{"docs":{},"e":{"docs":{},"v":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"m":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"e":{"docs":{},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},",":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},".":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"v":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}}},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/connecting/intro.html":{"ref":"developer/connecting/intro.html","tf":0.014925373134328358},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"n":{"docs":{},"e":{"docs":{},"v":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"r":{"docs":{},"e":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}}}}}},"y":{"docs":{},".":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}},"?":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.019736842105263157},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":5.003253796095445},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"s":{"docs":{},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},",":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},")":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}},",":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"\"":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.013245033112582781},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},"*":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}},"i":{"docs":{},"n":{"docs":{"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}}}},"m":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}},".":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}},",":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311}}}}},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":5.024590163934426},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786}},"s":{"docs":{},":":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},".":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},",":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}},".":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}},"d":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"4":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}},"8":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}},"docs":{}}}},"e":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}},"r":{"docs":{},"e":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},".":{"docs":{},"\"":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},",":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}}}}}},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.006896551724137931},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"e":{"docs":{},":":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}}},"a":{"docs":{},"p":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}}}},"g":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"1":{"0":{"docs":{},")":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}},"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}},"2":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}},"4":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}},"docs":{}}}}},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}},"/":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}}},"$":{"2":{"docs":{},"a":{"docs":{},"$":{"1":{"1":{"docs":{},"$":{"1":{"docs":{},"o":{"docs":{},"j":{"docs":{},"y":{"docs":{},"/":{"docs":{},"w":{"docs":{},"z":{"docs":{},"y":{"docs":{},"n":{"docs":{},"t":{"docs":{},"x":{"docs":{},"r":{"9":{"docs":{},"j":{"docs":{},"n":{"docs":{},"w":{"docs":{},"m":{"docs":{},"n":{"docs":{},"w":{"docs":{},"s":{"3":{"docs":{},"e":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"p":{"docs":{},"h":{"docs":{},"t":{"3":{"docs":{},"o":{"docs":{},"n":{"8":{"docs":{},"c":{"docs":{},"l":{"9":{"docs":{},"o":{"7":{"docs":{},"e":{"docs":{},"y":{"8":{"9":{"docs":{},"m":{"docs":{},"p":{"docs":{},"g":{"docs":{},"o":{"8":{"8":{"docs":{},"v":{"docs":{},"g":{"6":{"docs":{},"b":{"docs":{},"a":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}}},"docs":{}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}},"docs":{}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}}}}},"3":{"docs":{},"k":{"docs":{},"i":{"docs":{},"d":{"docs":{},"a":{"docs":{},"c":{"docs":{},"x":{"docs":{},"w":{"docs":{},".":{"docs":{},"g":{"docs":{},"l":{"docs":{},"s":{"docs":{},"l":{"1":{"docs":{},".":{"docs":{},"u":{"5":{"docs":{},"n":{"docs":{},"k":{"docs":{},"a":{"6":{"docs":{},"e":{"docs":{},"u":{"docs":{},"n":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"v":{"5":{"docs":{},"h":{"docs":{},"v":{"9":{"docs":{},"t":{"docs":{},"i":{"docs":{},"u":{"docs":{},"u":{"docs":{},"p":{"7":{"docs":{},"e":{"docs":{},"h":{"docs":{},"h":{"docs":{},"m":{"docs":{},"t":{"6":{"docs":{},"n":{"docs":{},"m":{"9":{"docs":{},"m":{"docs":{},"y":{"docs":{},"w":{"1":{"docs":{},"a":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.020134228187919462}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}}}}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}},"docs":{},"p":{"docs":{},"w":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"8":{"docs":{},"r":{"docs":{},"s":{"docs":{},"w":{"docs":{},"y":{"docs":{},"g":{"docs":{},"i":{"3":{"docs":{},"j":{"docs":{},"v":{"docs":{},"z":{"docs":{},"t":{"docs":{},"o":{"9":{"docs":{},"n":{"docs":{},"u":{"8":{"docs":{},".":{"6":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"z":{"docs":{},"x":{"docs":{},"f":{"docs":{},"z":{"docs":{},"o":{"7":{"docs":{},"c":{"docs":{},"/":{"docs":{},"w":{"0":{"docs":{},"e":{"docs":{},"l":{"docs":{},"k":{"0":{"1":{"7":{"docs":{},"h":{"docs":{},"j":{"docs":{},"g":{"docs":{},"u":{"docs":{},"k":{"docs":{},"w":{"docs":{},"r":{"docs":{},"h":{"docs":{},"i":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}},"v":{"1":{"docs":{},"q":{"docs":{},"r":{"docs":{},"p":{"docs":{},"b":{"docs":{},"t":{"8":{"docs":{},"/":{"docs":{},"s":{"docs":{},"l":{"docs":{},"f":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"4":{"docs":{},"n":{"docs":{},"j":{"docs":{},"q":{"4":{"docs":{},"t":{"docs":{},".":{"2":{"docs":{},"m":{"docs":{},"g":{"8":{"docs":{},"c":{"docs":{},"h":{"docs":{},"x":{"8":{"docs":{},".":{"docs":{},"m":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"u":{"docs":{},"i":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"3":{"docs":{},"m":{"docs":{},"k":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"y":{"docs":{},".":{"docs":{},"f":{"7":{"docs":{},"u":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}},"x":{"docs":{},"h":{"8":{"docs":{},"d":{"docs":{},"k":{"docs":{},"g":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"1":{"docs":{},"c":{"docs":{},"b":{"docs":{},"n":{"docs":{},"t":{"docs":{},"z":{"docs":{},"j":{"docs":{},"h":{"docs":{},"p":{"docs":{},"e":{"docs":{},"w":{"docs":{},"j":{"docs":{},"e":{"docs":{},"w":{"docs":{},"u":{"docs":{},"/":{"docs":{},"y":{"docs":{},"p":{"docs":{},"b":{"docs":{},"s":{"docs":{},"u":{"docs":{},".":{"docs":{},"r":{"docs":{},"x":{"docs":{},"j":{"docs":{},"w":{"docs":{},"m":{"docs":{},"s":{"6":{"docs":{},"s":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"x":{"docs":{},"z":{"docs":{},"m":{"docs":{},"z":{"docs":{},"o":{"docs":{},"m":{"docs":{},"k":{"9":{"docs":{},"m":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}},"docs":{}},"docs":{}}}},"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896}},"g":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}},"/":{"docs":{},"s":{"docs":{},"r":{"docs":{},"c":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.015}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333}}}}}}},"a":{"docs":{},"d":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}},"}":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"}":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"}":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"m":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"z":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}},"p":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},".":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"z":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"'":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"2":{"2":{"2":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"z":{"docs":{},"?":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"=":{"docs":{},"?":{"docs":{},"'":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"p":{"docs":{},"w":{"docs":{},"d":{"docs":{},")":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142}}}}}}}}}}}}}}}},"i":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414}}},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"_":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"/":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"/":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}},".":{"docs":{},".":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.023255813953488372},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},"i":{"docs":{},"y":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}},"/":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"/":{"docs":{},"m":{"docs":{},"k":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"d":{"docs":{"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525}}}}}}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}}}}},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"/":{"docs":{},".":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}}}}}}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"(":{"docs":{},"c":{"docs":{},")":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009}}}}}}},"s":{"docs":{},"e":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}}}}},">":{"0":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"1":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.042105263157894736},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.015503875968992248},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.028481012658227847},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.02702702702702703},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/":{"ref":"leafnodes/","tf":0.02446043165467626},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.013353115727002967},"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.040268456375838924},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.01365546218487395},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.016917293233082706},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.017374517374517374},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.01394700139470014},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.005979073243647235},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.026415094339622643},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.03618421052631579},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.042105263157894736},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.04395604395604396},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.026490066225165563},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.04201680672268908},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0392156862745098},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.013824884792626729},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.014336917562724014},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.015527950310559006},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.013333333333333334},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},".":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}},"g":{"1":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"gateways/":{"ref":"gateways/","tf":10.089324618736384},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.09018567639257294},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.033707865168539325}},"s":{"docs":{},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"gateways/":{"ref":"gateways/","tf":0.006535947712418301},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534}}},":":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"w":{"docs":{},"u":{"docs":{},":":{"docs":{},"g":{"docs":{},"w":{"docs":{},"p":{"docs":{},"@":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"7":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}},"docs":{}},"docs":{}},"3":{"3":{"3":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}},"docs":{}},"docs":{}},"4":{"4":{"4":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}},".":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},",":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}},"v":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}},"i":{"docs":{},"n":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"e":{"docs":{},"n":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028}},"e":{"docs":{},"r":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.019455252918287938},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"leafnodes/":{"ref":"leafnodes/","tf":0.008633093525179856},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.020134228187919462},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.03546099290780142},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.007352941176470588},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.009652509652509652},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.016736401673640166},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.01509433962264151},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.01020408163265306},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"developer/reconnect/intro.html":{"ref":"developer/reconnect/intro.html","tf":0.01098901098901099}}},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}},"o":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}},"t":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},".":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"x":{"docs":{},"t":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}},"(":{"docs":{},"n":{"docs":{},"c":{"docs":{},")":{"docs":{},")":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}}}}}}}}}}}}}}}}},"m":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"n":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.01}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538}},".":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}}}}}}}},"@":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},":":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}}},"d":{"docs":{},":":{"1":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}},"2":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}},"3":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}},"4":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408}}},"docs":{}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.00530035335689046},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.023622047244094488},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521}}}}}}},"o":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.015822784810126583},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00784313725490196},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.007263922518159807},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.011834319526627219},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.020134228187919462},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.004201680672268907},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01912568306010929},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.024253731343283583},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.00782472613458529},"developer/":{"ref":"developer/","tf":0.03278688524590164},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.008210180623973728},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.010752688172043012},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.005376344086021506},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.02666666666666667},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.02564102564102564},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.05},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":2.0145631067961167},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.008316008316008316}},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}},"n":{"docs":{},"e":{"docs":{},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"p":{"docs":{"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},";":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767}}}}}},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}},"o":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}},"d":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},".":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}}}},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002355712603062426},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.012903225806451613},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}},")":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}},"n":{"docs":{},"t":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"c":{"docs":{},"e":{"docs":{},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.008130081300813009},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391}},"l":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}},"e":{"docs":{},"r":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.002789400278940028},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"e":{"docs":{},"t":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.00646551724137931}}}}},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.002944640753828033},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.006578947368421052},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":5.033112582781457},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.012422360248447204},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.045},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}}},".":{"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"s":{"docs":{},".":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},"]":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"w":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}},"u":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"d":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"i":{"docs":{},"d":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.006105006105006105},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}},",":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}}}},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}},"e":{"docs":{},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"d":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.011655011655011656},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.016666666666666666},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.01935483870967742},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.010752688172043012},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.02},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}},";":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}}},"w":{"docs":{},"p":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},"u":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012}},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}},".":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"k":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}},"b":{"docs":{},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.004711425206124852},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.015748031496062992},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.023734177215189875},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.018907563025210083},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.005639097744360902},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.005791505791505791},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.01394700139470014},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.05333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.016442451420029897},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":5.063583815028902},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.018867924528301886},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.04477611940298507}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},".":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},"s":{"docs":{},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}},".":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}}}}}},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.004746835443037975},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.02}},"p":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},".":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"d":{"docs":{},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{},"s":{"docs":{},"(":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"s":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"u":{"docs":{},"t":{"docs":{},"f":{"docs":{},"_":{"8":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/":{"ref":"gateways/","tf":0.004357298474945534},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}},"b":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}},"u":{"docs":{},"m":{"docs":{},"p":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"t":{"docs":{},"i":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.006568144499178982},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.016216216216216217},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.004158004158004158}},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}},".":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.006568144499178982},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.004032258064516129},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}}}},",":{"docs":{"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}},"q":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.005889281507656066},"gateways/":{"ref":"gateways/","tf":0.023965141612200435},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":5.086092715231788},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":5.027950310559007},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.008771929824561403},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.004601226993865031},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":3.408333333333333},"developer/streaming/":{"ref":"developer/streaming/","tf":0.010889292196007259},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":5.1},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0046210720887245845}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853}}}}}}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}},"_":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{},"(":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}}}}}},":":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"=":{"docs":{},"\"":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}}}}}}}},",":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"/":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04}}}}}}}}},"r":{"docs":{},"i":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}}}},"i":{"docs":{},"t":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.016260162601626018},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}},"e":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}},"c":{"docs":{},"k":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}},"i":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}},"o":{"docs":{},"t":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}},"g":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{},":":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}},"=":{"docs":{},"[":{"docs":{},"]":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"1":{"docs":{},",":{"docs":{"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}}}},"2":{"docs":{},",":{"docs":{"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.02}}}},"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}}}}}},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"1":{"4":{"docs":{},":":{"4":{"4":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{},":":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}}},"v":{"0":{"docs":{},".":{"8":{"docs":{},".":{"0":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}},"docs":{}}},"docs":{}}},"2":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.021052631578947368}},"d":{"docs":{},"a":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.00949367088607595},"nats_docker/":{"ref":"nats_docker/","tf":0.01721664275466284}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0017667844522968198},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0031645569620253164},"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.014184397163120567},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.003968253968253968},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},";":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}},":":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"u":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.018666666666666668},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},"e":{"docs":{},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/streaming/":{"ref":"developer/streaming/","tf":0.003629764065335753}}},"\"":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426}}},")":{"docs":{},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"r":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.009259259259259259}},"i":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.016},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}},":":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}},"o":{"docs":{},"u":{"docs":{"nats_server/auth_intro.html":{"ref":"nats_server/auth_intro.html","tf":0.007874015748031496},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"z":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0035335689045936395},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/receiving/intro.html":{"ref":"developer/receiving/intro.html","tf":0.012987012987012988},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"f":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"i":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.0035842293906810036},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.019083969465648856},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.006329113924050633},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.022222222222222223},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.016853932584269662},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.011111111111111112},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/security/intro.html":{"ref":"developer/security/intro.html","tf":0.017543859649122806},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}}}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582}}}}}},"y":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"_":{"docs":{},"m":{"docs":{},"a":{"docs":{},"p":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}},".":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}},":":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.015503875968992248},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.01020408163265306},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_docker/":{"ref":"nats_docker/","tf":0.0028694404591104736},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.009685230024213076},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.021052631578947368},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.020522388059701493},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.004629629629629629},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},".":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}},":":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}},"s":{"docs":{},",":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.013136288998357963},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0026455026455026454},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.010395010395010396},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0027726432532347504}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}},":":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},")":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_tools/nas/":{"ref":"nats_tools/nas/","tf":0.013333333333333334}}}}},"i":{"docs":{},"a":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.004842615012106538},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}},"e":{"docs":{},"w":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}},",":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}}}},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.005263157894736842},"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"sys_accounts/":{"ref":"sys_accounts/","tf":0.02},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"t":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"r":{"docs":{},"t":{"docs":{},"u":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}},"a":{"docs":{},"l":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655}}}}}}},"o":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}},",":{"docs":{"nats_server/flags.html":{"ref":"nats_server/flags.html","tf":0.007168458781362007},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}},"o":{"docs":{},"l":{"docs":{},"u":{"docs":{},"m":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}},"e":{"docs":{},".":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}}}},"i":{"docs":{},"d":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.010752688172043012},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374}}}}},"s":{"docs":{},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}},"n":{"docs":{},"s":{"docs":{},"z":{"docs":{},"h":{"docs":{},"m":{"docs":{},"o":{"docs":{},"a":{"3":{"docs":{},"t":{"docs":{},"r":{"docs":{},"g":{"docs":{},"g":{"docs":{},"l":{"docs":{},"t":{"docs":{},"z":{"3":{"docs":{},"p":{"docs":{},"g":{"docs":{},"u":{"3":{"docs":{},"b":{"docs":{},"p":{"docs":{},"s":{"docs":{},"c":{"docs":{},"b":{"0":{"docs":{},"u":{"docs":{},"j":{"5":{"docs":{},"r":{"docs":{},"d":{"docs":{},"v":{"docs":{},"t":{"docs":{},"h":{"docs":{},"z":{"docs":{},"z":{"docs":{},"o":{"docs":{},"y":{"docs":{},"z":{"1":{"8":{"docs":{},"_":{"docs":{},"w":{"docs":{},"l":{"docs":{},"c":{"docs":{},"b":{"docs":{},"f":{"docs":{},"o":{"6":{"docs":{},"h":{"8":{"docs":{},"s":{"0":{"1":{"docs":{},"s":{"3":{"docs":{},"d":{"2":{"docs":{},"q":{"docs":{},"f":{"9":{"docs":{},"j":{"3":{"6":{"docs":{},"l":{"docs":{},"k":{"docs":{},"h":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"m":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{},"h":{"docs":{},"e":{"docs":{},"y":{"docs":{},"q":{"docs":{},"e":{"docs":{},"o":{"0":{"4":{"docs":{},"a":{"docs":{},"w":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}},"x":{"5":{"0":{"9":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542}},"v":{"3":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.011450381679389313}}},"docs":{}}},"docs":{}},"docs":{}},"8":{"6":{"docs":{},"_":{"6":{"4":{"docs":{},")":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}},",":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.002421307506053269}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},".":{"5":{"0":{"9":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}},"docs":{}},"docs":{}},"docs":{}},"z":{"docs":{},"f":{"docs":{},"u":{"3":{"docs":{},"u":{"7":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"p":{"docs":{},"w":{"docs":{},"k":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"g":{"docs":{},"z":{"docs":{},"m":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"f":{"docs":{},"y":{"7":{"docs":{},"q":{"7":{"docs":{},"p":{"docs":{},"s":{"9":{"0":{"docs":{},"h":{"docs":{},"z":{"docs":{},"z":{"docs":{},"v":{"docs":{},"p":{"5":{"docs":{},"k":{"3":{"docs":{},"o":{"docs":{},"s":{"docs":{},"l":{"docs":{},"d":{"docs":{},"j":{"docs":{},"a":{"docs":{},"d":{"docs":{},"r":{"docs":{},"i":{"docs":{},"x":{"docs":{},"p":{"4":{"docs":{},"u":{"docs":{},"d":{"docs":{},"p":{"docs":{},"u":{"docs":{},"q":{"docs":{},"e":{"docs":{},"u":{"docs":{},"h":{"docs":{},"v":{"9":{"docs":{},"q":{"docs":{},"k":{"9":{"docs":{},"e":{"docs":{},"m":{"docs":{},"k":{"4":{"0":{"docs":{},"p":{"docs":{},"c":{"docs":{},"g":{"docs":{},"h":{"6":{"docs":{},"n":{"docs":{},"z":{"docs":{},"j":{"7":{"docs":{},"g":{"docs":{},"m":{"docs":{},"a":{"docs":{},"z":{"docs":{},"l":{"docs":{},"u":{"6":{"docs":{},"r":{"docs":{},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"b":{"docs":{},"x":{"docs":{},"a":{"docs":{},"g":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}}},"docs":{}}}}}},"docs":{}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}},"docs":{}}}},"z":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.001177856301531213},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}},"i":{"docs":{},"p":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.010526315789473684},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}},"e":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853}},"e":{"docs":{},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"s":{"docs":{},"o":{"docs":{},"_":{"docs":{},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853}},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}},",":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}},".":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"/":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"_":{"docs":{},"y":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"u":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"/":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"a":{"docs":{},"w":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ€œ":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"โ€":{"docs":{"whats_new/whats_new_20.html":{"ref":"whats_new/whats_new_20.html","tf":0.0005889281507656066}}}}}}}}}}},"~":{"docs":{},"/":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"b":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"b":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"โ€":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"b":{"docs":{},"โ€":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},"โ€":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"โ€":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667}}}}}}}}}},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"/":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"\"":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},".":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"โ€":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}}}}},"[":{"1":{"7":{"0":{"1":{"0":{"docs":{},"]":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}},"docs":{}},"docs":{}},"docs":{}},"8":{"0":{"8":{"5":{"docs":{},"]":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.031476997578692496}}}},"docs":{}},"docs":{}},"1":{"2":{"2":{"docs":{},"]":{"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.03389830508474576}}}},"docs":{}},"docs":{}},"5":{"4":{"1":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"]":{"docs":{"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.03875968992248062},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.027777777777777776},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}}}},"2":{"0":{"1":{"6":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.017241379310344827}}},"docs":{}},"docs":{}},"1":{"4":{"1":{"7":{"docs":{},"]":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.02040816326530612}}}},"docs":{}},"docs":{}},"docs":{}},"2":{"2":{"4":{"2":{"docs":{},"]":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.013605442176870748}}}},"docs":{}},"docs":{}},"docs":{}},"9":{"6":{"7":{"0":{"docs":{},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.015822784810126583}}}},"docs":{}},"docs":{}},"7":{"8":{"5":{"docs":{},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0189873417721519}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}}},"3":{"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}}},"4":{"1":{"6":{"3":{"4":{"docs":{},"]":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.021052631578947368},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.031007751937984496}}}},"docs":{}},"docs":{}},"docs":{}},"5":{"2":{"8":{"docs":{},"]":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}}},"docs":{}},"docs":{}},"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}}},"5":{"4":{"0":{"8":{"3":{"docs":{},"]":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"]":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}}},"7":{"5":{"6":{"5":{"3":{"docs":{},"]":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.012755102040816327}}}},"docs":{}},"6":{"5":{"docs":{},"]":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.017857142857142856}}}},"docs":{}},"docs":{}},"7":{"6":{"4":{"docs":{},"]":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.015306122448979591}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"8":{"5":{"8":{"0":{"3":{"docs":{},"]":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.04774535809018567}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.01366120218579235},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.010954616588419406},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"]":{"docs":{"nats_server/installation.html":{"ref":"nats_server/installation.html","tf":0.021052631578947368},"nats_server/running.html":{"ref":"nats_server/running.html","tf":0.06976744186046512},"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.03164556962025317},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.02040816326530612},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.011479591836734694},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.04774535809018567},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/":{"ref":"nats_docker/","tf":0.014347202295552367},"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.027777777777777776},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.06537530266343826},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.025411061285500747},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.006259780907668232},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"1":{"1":{"1":{"docs":{},"]":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"o":{"docs":{},"t":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}}},"#":{"1":{"docs":{},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}},"2":{"docs":{},"]":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}},"3":{"5":{"docs":{},"]":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"6":{"docs":{},"]":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}},"docs":{},"]":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}},"4":{"docs":{},"]":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"docs":{}},">":{"docs":{},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}},":":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},",":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}},"p":{"docs":{},".":{"docs":{},">":{"docs":{},"]":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"a":{"docs":{},"a":{"docs":{},"l":{"5":{"docs":{},"q":{"2":{"docs":{},"b":{"3":{"docs":{},"s":{"docs":{},"m":{"docs":{},"]":{"docs":{},":":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}},"]":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956}},":":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"r":{"docs":{},"e":{"docs":{},")":{"docs":{},"(":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}}}}},"e":{"docs":{},"n":{"docs":{},"w":{"docs":{},"i":{"docs":{},"d":{"docs":{},"t":{"docs":{},"h":{"docs":{},"=":{"2":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}},"]":{"docs":{},";":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.008888888888888889}}}}},"docs":{}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"c":{"docs":{},"]":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}},"\"":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},".":{"docs":{},">":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"1":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}},"docs":{}},"docs":{}},"docs":{}},"4":{"4":{"4":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259}},")":{"docs":{"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"b":{"docs":{},"g":{"docs":{},"]":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.013605442176870748},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.03443877551020408},"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184}}}}}},"r":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"]":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},":":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"]":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"]":{"docs":{},":":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}}}}}}}}}}},"$":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"w":{"docs":{},"j":{"docs":{},"v":{"docs":{},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"c":{"2":{"docs":{},"g":{"docs":{},"h":{"docs":{},"l":{"5":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"n":{"2":{"docs":{},"l":{"docs":{},"o":{"docs":{},"e":{"docs":{},"o":{"docs":{},"q":{"docs":{},"o":{"docs":{},"y":{"2":{"docs":{},"e":{"6":{"docs":{},"z":{"2":{"docs":{},"v":{"docs":{},"x":{"docs":{},"n":{"docs":{},"u":{"3":{"docs":{},"j":{"docs":{},"e":{"docs":{},"i":{"docs":{},"k":{"6":{"docs":{},"b":{"docs":{},"d":{"docs":{},"g":{"docs":{},"p":{"docs":{},"w":{"docs":{},"n":{"docs":{},"i":{"docs":{},"w":{"3":{"docs":{},"a":{"docs":{},"x":{"docs":{},"f":{"docs":{},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"]":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"c":{"7":{"docs":{},"a":{"docs":{},"k":{"docs":{},"p":{"docs":{},"q":{"docs":{},"r":{"docs":{},"c":{"6":{"docs":{},"c":{"docs":{},"i":{"docs":{},"z":{"docs":{},"g":{"docs":{},"w":{"docs":{},"r":{"docs":{},"j":{"docs":{},"o":{"docs":{},"t":{"docs":{},"v":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"v":{"docs":{},"s":{"docs":{},"l":{"7":{"docs":{},"v":{"docs":{},"w":{"7":{"docs":{},"w":{"docs":{},"x":{"docs":{},"t":{"docs":{},"q":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"j":{"docs":{},"f":{"docs":{},"n":{"docs":{},"g":{"7":{"docs":{},"h":{"docs":{},"t":{"docs":{},"c":{"docs":{},"m":{"docs":{},"c":{"docs":{},"k":{"docs":{},"q":{"docs":{},"t":{"docs":{},"g":{"docs":{},"e":{"5":{"docs":{},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"z":{"docs":{},"]":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"]":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"w":{"docs":{},"j":{"docs":{},"v":{"docs":{},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"c":{"2":{"docs":{},"g":{"docs":{},"h":{"docs":{},"l":{"5":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"n":{"2":{"docs":{},"l":{"docs":{},"o":{"docs":{},"e":{"docs":{},"o":{"docs":{},"q":{"docs":{},"o":{"docs":{},"y":{"2":{"docs":{},"e":{"6":{"docs":{},"z":{"2":{"docs":{},"v":{"docs":{},"x":{"docs":{},"n":{"docs":{},"u":{"3":{"docs":{},"j":{"docs":{},"e":{"docs":{},"i":{"docs":{},"k":{"6":{"docs":{},"b":{"docs":{},"d":{"docs":{},"g":{"docs":{},"p":{"docs":{},"w":{"docs":{},"n":{"docs":{},"i":{"docs":{},"w":{"3":{"docs":{},"a":{"docs":{},"x":{"docs":{},"f":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"s":{"docs":{},"]":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},".":{"docs":{},"d":{"docs":{},"q":{"docs":{},"d":{"4":{"4":{"docs":{},"u":{"docs":{},"g":{"docs":{},"v":{"docs":{},"t":{"0":{"docs":{},"o":{"4":{"docs":{},"u":{"docs":{},"r":{"3":{"docs":{},"p":{"docs":{},"w":{"docs":{},"i":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"1":{"docs":{},".":{"docs":{},"w":{"docs":{},"q":{"docs":{},"o":{"docs":{},"b":{"docs":{},"e":{"docs":{},"v":{"docs":{},"o":{"docs":{},"q":{"docs":{},"]":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}}},"docs":{}}},"docs":{}}}}}},"docs":{}},"docs":{}}}},"g":{"5":{"docs":{},"m":{"docs":{},"b":{"docs":{},"s":{"docs":{},"f":{"0":{"docs":{},"k":{"7":{"docs":{},"l":{"7":{"docs":{},"n":{"docs":{},"b":{"4":{"docs":{},"e":{"docs":{},"w":{"docs":{},"h":{"docs":{},"a":{"7":{"docs":{},"g":{"docs":{},"t":{"docs":{},"t":{"docs":{},".":{"docs":{},"o":{"docs":{},"m":{"docs":{},"k":{"docs":{},"l":{"docs":{},"m":{"docs":{},"v":{"docs":{},"n":{"docs":{},"m":{"docs":{},"]":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}},"docs":{}},"n":{"3":{"docs":{},"i":{"docs":{},"i":{"docs":{},"q":{"docs":{},"w":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"q":{"docs":{},"f":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"b":{"docs":{},"p":{"docs":{},"b":{"docs":{},"r":{"docs":{},"u":{"docs":{},"m":{"docs":{},".":{"docs":{},"z":{"docs":{},"j":{"docs":{},"b":{"docs":{},"n":{"docs":{},"t":{"docs":{},"k":{"docs":{},"b":{"3":{"docs":{},"]":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"v":{"6":{"docs":{},"k":{"docs":{},"a":{"docs":{},"x":{"0":{"docs":{},"v":{"1":{"docs":{},"b":{"docs":{},"u":{"8":{"7":{"docs":{},"k":{"4":{"9":{"docs":{},"h":{"docs":{},"b":{"docs":{},"g":{"3":{"docs":{},"d":{"docs":{},"g":{"docs":{},"n":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"g":{"docs":{},"j":{"docs":{},"f":{"0":{"docs":{},"d":{"docs":{},"]":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}},"docs":{}}},"docs":{}}}}},"docs":{}}}}}}}}},"{":{"docs":{},":":{"docs":{},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"=":{"docs":{},">":{"docs":{},"#":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}}}}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"g":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.01935483870967742}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.015555555555555555}}}}}}}},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.03289473684210526},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.042105263157894736},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.02197802197802198},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.026490066225165563},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.0196078431372549},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.013824884792626729},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.012422360248447204}}}}}},"c":{"docs":{},"i":{"docs":{},"r":{"docs":{},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"=":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},",":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"m":{"docs":{},"]":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}}}}}},"t":{"docs":{},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"n":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},",":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}}}}}}}}}}}},"a":{"docs":{},".":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},".":{"docs":{},"a":{"docs":{},"]":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}},"d":{"docs":{},".":{"docs":{},"a":{"docs":{},".":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},".":{"docs":{},"d":{"docs":{},"]":{"docs":{},":":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}},"]":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"=":{"1":{"0":{"0":{"0":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.004694835680751174}}}},"docs":{}},"docs":{},",":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.003129890453834116}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},".":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"]":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}},":":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222}}}}}}}}}}},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"]":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"=":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"1":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.042105263157894736},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.01680672268907563}}}},",":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.01098901098901099}}}}},"docs":{"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.026490066225165563},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.012422360248447204}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.029605263157894735},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152}}}}}}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}}}},"2":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}}}},"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}}}},"docs":{},"*":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745}}}}}}}}}}}}}},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}}},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025}}}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"o":{"docs":{},"'":{"docs":{},"d":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}}}}}}}}}}}},"]":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"1":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"(":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}}},"\"":{"docs":{},"a":{"docs":{},"l":{"docs":{"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.028169014084507043}}}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"{":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"]":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"]":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"]":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}}}}},"docs":{}}},"docs":{}}},"5":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}},"docs":{}}},"6":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}},"docs":{}}},"docs":{}}},"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"4":{"0":{"0":{"0":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{},".":{"0":{"docs":{},".":{"9":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}},"docs":{}}},"7":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"docs":{}}},"docs":{}},"m":{"3":{"3":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}},"docs":{}},"docs":{}}},"2":{"0":{"1":{"5":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.011655011655011656}}},"9":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.011869436201780416}}},"docs":{}},"docs":{}},"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}}},"docs":{}}},"docs":{}}},"3":{"docs":{},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}}}},"5":{"3":{"docs":{},"y":{"docs":{},"i":{"7":{"8":{"docs":{},"q":{"9":{"6":{"docs":{},"t":{"5":{"2":{"docs":{},"q":{"docs":{},"d":{"docs":{},"y":{"docs":{},"y":{"docs":{},"w":{"docs":{},"l":{"docs":{},"k":{"docs":{},"i":{"docs":{},"y":{"docs":{},"e":{"docs":{},"\"":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}}}}}}}}}}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}},"docs":{},"y":{"docs":{},"m":{"docs":{},"r":{"docs":{},"o":{"4":{"docs":{},"k":{"docs":{},"n":{"docs":{},"m":{"docs":{},"y":{"docs":{},"w":{"docs":{},"q":{"docs":{},"d":{"docs":{},"m":{"docs":{},"r":{"docs":{},"a":{"docs":{},"h":{"docs":{},"v":{"docs":{},"t":{"docs":{},"t":{"4":{"docs":{},"k":{"docs":{},"x":{"6":{"3":{"docs":{},"c":{"docs":{},"a":{"2":{"docs":{},"l":{"3":{"docs":{},"m":{"6":{"docs":{},"f":{"4":{"docs":{},"v":{"docs":{},"m":{"3":{"docs":{},"s":{"7":{"docs":{},"n":{"docs":{},"n":{"docs":{},"g":{"docs":{},"p":{"docs":{},"m":{"docs":{},"c":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"x":{"docs":{},"q":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}},"%":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"%":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/windows_srv.html":{"ref":"nats_server/windows_srv.html","tf":0.00819672131147541}}}}}}}}}}}}}}}}},">":{"docs":{},"\"":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.00949367088607595},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}},"b":{"docs":{},"\"":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816}},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.008902077151335312}}}}}}}}},"c":{"docs":{},"\"":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816}},"]":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}},"n":{"docs":{},"=":{"docs":{},"e":{"docs":{},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},",":{"docs":{},"o":{"docs":{},"u":{"docs":{},"=":{"docs":{},"c":{"docs":{},"n":{"docs":{},"c":{"docs":{},"f":{"docs":{},"\"":{"docs":{},"}":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326}}}}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"_":{"docs":{},"h":{"docs":{},"i":{"docs":{},"t":{"docs":{},"_":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.009216589861751152},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}},"_":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{},"[":{"docs":{},"\"":{"1":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"8":{"4":{"docs":{},":":{"4":{"3":{"3":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"1":{"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"2":{"9":{"docs":{},".":{"1":{"docs":{},":":{"4":{"3":{"3":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"1":{"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"1":{"9":{"2":{"docs":{},".":{"1":{"docs":{},":":{"4":{"3":{"3":{"3":{"docs":{},"\"":{"docs":{},"]":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"\"":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}},"p":{"docs":{},"u":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}},"f":{"0":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"\"":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}}},"docs":{},"o":{"docs":{},"o":{"docs":{},"\"":{"docs":{"gateways/":{"ref":"gateways/","tf":0.006535947712418301}},",":{"docs":{"gateways/":{"ref":"gateways/","tf":0.010893246187363835}}},".":{"docs":{"gateways/":{"ref":"gateways/","tf":0.002178649237472767},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}},"s":{"3":{"docs":{},"c":{"docs":{},"r":{"3":{"docs":{},"t":{"docs":{},"\"":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}}}},"docs":{}}}},"docs":{},"e":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}}},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}}}}}}}},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656}}}}}},"q":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}}}}},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},".":{"docs":{},"*":{"docs":{},"\"":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656}}}}}},"t":{"docs":{},"s":{"docs":{},"_":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}},"z":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}},"n":{"docs":{},"\"":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}},"o":{"docs":{},"p":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"m":{"docs":{},"\"":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{},"\"":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}}}}}}}}}}}}}}}}},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}},"n":{"docs":{},"x":{"5":{"0":{"9":{"docs":{},"\"":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}},"docs":{}},"docs":{}},"docs":{}}}},"y":{"docs":{},"s":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}},"u":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}},"r":{"docs":{},"v":{"docs":{},"\"":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}}},"c":{"docs":{},"/":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{},"k":{"docs":{},"s":{"docs":{},"\"":{"docs":{},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}},".":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.013605442176870748}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"a":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{},"\"":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083}}}}},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.022222222222222223}}}}}}}}}}}}}}}}}}}}},"\"":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}},"$":{"2":{"docs":{},"a":{"docs":{},"$":{"1":{"1":{"docs":{},"$":{"docs":{},"p":{"docs":{},"w":{"docs":{},"i":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"8":{"docs":{},"r":{"docs":{},"s":{"docs":{},"w":{"docs":{},"y":{"docs":{},"g":{"docs":{},"i":{"3":{"docs":{},"j":{"docs":{},"v":{"docs":{},"z":{"docs":{},"t":{"docs":{},"o":{"9":{"docs":{},"n":{"docs":{},"u":{"8":{"docs":{},".":{"6":{"docs":{},"j":{"docs":{},"o":{"docs":{},"x":{"docs":{},"z":{"docs":{},"x":{"docs":{},"f":{"docs":{},"z":{"docs":{},"o":{"7":{"docs":{},"c":{"docs":{},"/":{"docs":{},"w":{"0":{"docs":{},"e":{"docs":{},"l":{"docs":{},"k":{"0":{"1":{"7":{"docs":{},"h":{"docs":{},"j":{"docs":{},"g":{"docs":{},"u":{"docs":{},"k":{"docs":{},"w":{"docs":{},"r":{"docs":{},"h":{"docs":{},"y":{"docs":{},"\"":{"docs":{"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.009009009009009009}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}}}}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}},"v":{"1":{"docs":{},"q":{"docs":{},"r":{"docs":{},"p":{"docs":{},"b":{"docs":{},"t":{"8":{"docs":{},"/":{"docs":{},"s":{"docs":{},"l":{"docs":{},"f":{"docs":{},"e":{"docs":{},"b":{"docs":{},"r":{"4":{"docs":{},"n":{"docs":{},"j":{"docs":{},"q":{"4":{"docs":{},"t":{"docs":{},".":{"2":{"docs":{},"m":{"docs":{},"g":{"8":{"docs":{},"c":{"docs":{},"h":{"docs":{},"x":{"8":{"docs":{},".":{"docs":{},"m":{"docs":{},"t":{"docs":{},"b":{"docs":{},"l":{"docs":{},"u":{"docs":{},"i":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"3":{"docs":{},"m":{"docs":{},"k":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"y":{"docs":{},".":{"docs":{},"f":{"7":{"docs":{},"u":{"docs":{},"\"":{"docs":{},"}":{"docs":{},",":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}}}},"docs":{}}}},"docs":{}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}},"docs":{}}}},"docs":{}},"d":{"docs":{},"e":{"4":{"7":{"5":{"docs":{},"c":{"0":{"0":{"4":{"1":{"4":{"1":{"8":{"docs":{},"a":{"docs":{},"f":{"docs":{},"c":{"7":{"9":{"9":{"docs":{},"b":{"docs":{},"c":{"docs":{},"c":{"docs":{},"f":{"0":{"docs":{},"f":{"docs":{},"d":{"docs":{},"d":{"6":{"1":{"docs":{},"b":{"4":{"7":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}},"docs":{}}}}}},"docs":{}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"r":{"docs":{},"e":{"docs":{},"k":{"docs":{},"@":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771}}}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"\"":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0025},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"b":{"docs":{},"e":{"docs":{},"e":{"docs":{},"f":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"i":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}}},"\"":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}}}},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},".":{"docs":{},">":{"docs":{},"\"":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495}},"]":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"]":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.005494505494505495}}}}}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}},"y":{"docs":{},":":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"y":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}},"i":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"8":{"0":{"docs":{},"t":{"docs":{},"b":{"docs":{},"w":{"docs":{},"j":{"docs":{},"b":{"docs":{},"y":{"docs":{},"u":{"docs":{},"l":{"docs":{},"x":{"1":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"p":{"docs":{},"\"":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}}}}}}}},"docs":{}}}}}}}}}}},"docs":{}},"docs":{}}}}}},"n":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}}},"p":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993}}}}},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276}}}}},"y":{"4":{"docs":{},"z":{"docs":{},"u":{"docs":{},"w":{"docs":{},"l":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"5":{"docs":{},"n":{"5":{"docs":{},"u":{"docs":{},"d":{"docs":{},"l":{"docs":{},"o":{"docs":{},"f":{"docs":{},"e":{"docs":{},"b":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"h":{"docs":{},"b":{"6":{"docs":{},"m":{"docs":{},"k":{"docs":{},"q":{"docs":{},"m":{"docs":{},"k":{"4":{"docs":{},"z":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"2":{"docs":{},"b":{"docs":{},"s":{"docs":{},"p":{"docs":{},"k":{"docs":{},"m":{"docs":{},"x":{"docs":{},"s":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"x":{"docs":{},"o":{"docs":{},"a":{"docs":{},"\"":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}},"docs":{}},"a":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}},"s":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"1":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}},"3":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}}}},"4":{"docs":{},"\"":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}},"]":{"docs":{},")":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629}}},",":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"9":{"2":{"docs":{},".":{"1":{"6":{"8":{"docs":{},".":{"5":{"9":{"docs":{},".":{"1":{"0":{"3":{"docs":{},":":{"7":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"5":{"docs":{},":":{"7":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"1":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},"3":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},"4":{"docs":{},"\"":{"docs":{"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}},"docs":{}},"docs":{}},"docs":{}},"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.006568144499178982},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}}},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"1":{"2":{"2":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},"4":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}},"docs":{}},"docs":{}},"docs":{}},"4":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497}}}}}}},"o":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}},"w":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993}}}}},"t":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}}}},"u":{"docs":{},"m":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"t":{"docs":{},"g":{"docs":{},"v":{"docs":{},"y":{"3":{"docs":{},"o":{"docs":{},"k":{"docs":{},"d":{"docs":{},"k":{"docs":{},"e":{"docs":{},"a":{"docs":{},"j":{"docs":{},"p":{"docs":{},"u":{"docs":{},"x":{"docs":{},"r":{"docs":{},"h":{"docs":{},"z":{"docs":{},"l":{"docs":{},"k":{"docs":{},"b":{"docs":{},"c":{"docs":{},"r":{"docs":{},"h":{"3":{"docs":{},"l":{"docs":{},"w":{"docs":{},"c":{"docs":{},"k":{"docs":{},"z":{"6":{"docs":{},"z":{"docs":{},"x":{"docs":{},"t":{"docs":{},"a":{"docs":{},"j":{"docs":{},"r":{"docs":{},"s":{"2":{"docs":{},"r":{"docs":{},"m":{"docs":{},"y":{"docs":{},"n":{"3":{"docs":{},"p":{"docs":{},"m":{"docs":{},"d":{"docs":{},"r":{"docs":{},"m":{"docs":{},"u":{"docs":{},"z":{"docs":{},"w":{"docs":{},"p":{"docs":{},"r":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"c":{"7":{"docs":{},"a":{"docs":{},"k":{"docs":{},"p":{"docs":{},"q":{"docs":{},"r":{"docs":{},"c":{"6":{"docs":{},"c":{"docs":{},"i":{"docs":{},"z":{"docs":{},"g":{"docs":{},"w":{"docs":{},"r":{"docs":{},"j":{"docs":{},"o":{"docs":{},"t":{"docs":{},"v":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"v":{"docs":{},"s":{"docs":{},"l":{"7":{"docs":{},"v":{"docs":{},"w":{"7":{"docs":{},"w":{"docs":{},"x":{"docs":{},"t":{"docs":{},"q":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"j":{"docs":{},"f":{"docs":{},"n":{"docs":{},"g":{"7":{"docs":{},"h":{"docs":{},"t":{"docs":{},"c":{"docs":{},"m":{"docs":{},"c":{"docs":{},"k":{"docs":{},"q":{"docs":{},"t":{"docs":{},"g":{"docs":{},"e":{"5":{"docs":{},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{},"z":{"docs":{},"q":{"docs":{},"d":{"docs":{},"u":{"docs":{},"x":{"7":{"7":{"docs":{},"o":{"docs":{},"s":{"docs":{},"s":{"docs":{},"t":{"docs":{},"g":{"docs":{},"n":{"2":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"o":{"docs":{},"c":{"docs":{},"p":{"4":{"docs":{},"x":{"7":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"x":{"3":{"docs":{},"h":{"4":{"docs":{},"d":{"docs":{},"b":{"docs":{},"g":{"docs":{},"z":{"docs":{},"b":{"docs":{},"y":{"3":{"4":{"docs":{},"v":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"4":{"docs":{},"t":{"docs":{},"q":{"docs":{},"e":{"docs":{},"p":{"docs":{},"k":{"6":{"docs":{},"p":{"6":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}}},"docs":{}}}}}}}},"docs":{}}}}}}}},"docs":{}},"docs":{}}}}}}},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}},"x":{"docs":{},"z":{"docs":{},"f":{"docs":{},"u":{"3":{"docs":{},"u":{"7":{"docs":{},"u":{"docs":{},"s":{"docs":{},"a":{"docs":{},"p":{"docs":{},"w":{"docs":{},"k":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"o":{"docs":{},"g":{"docs":{},"z":{"docs":{},"m":{"docs":{},"\"":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}},"a":{"docs":{},"\"":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}},",":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}}}},"v":{"docs":{},"g":{"docs":{},"_":{"docs":{},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}},"c":{"7":{"docs":{},"p":{"docs":{},"o":{"3":{"docs":{},"m":{"docs":{},"r":{"docs":{},"e":{"docs":{},"v":{"2":{"6":{"docs":{},"u":{"3":{"docs":{},"l":{"docs":{},"f":{"docs":{},"z":{"docs":{},"f":{"docs":{},"p":{"5":{"docs":{},"b":{"docs":{},"n":{"3":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"3":{"2":{"docs":{},"x":{"3":{"docs":{},"p":{"docs":{},"k":{"docs":{},"l":{"docs":{},"b":{"docs":{},"r":{"docs":{},"v":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"e":{"docs":{},"t":{"docs":{},"l":{"docs":{},"e":{"docs":{},"h":{"docs":{},"w":{"docs":{},"p":{"docs":{},"q":{"docs":{},"e":{"docs":{},"u":{"docs":{},"g":{"7":{"docs":{},"e":{"docs":{},"j":{"docs":{},"y":{"4":{"docs":{},"h":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}},"docs":{}}}},"docs":{},"c":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"b":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"\"":{"docs":{},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"_":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}}}}}}}}}}},"k":{"docs":{},":":{"docs":{},"#":{"docs":{},"{":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"}":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842}}}}}}}}}}}}},"d":{"docs":{},"w":{"docs":{},"j":{"docs":{},"v":{"docs":{},"s":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"v":{"docs":{},"c":{"2":{"docs":{},"g":{"docs":{},"h":{"docs":{},"l":{"5":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"n":{"2":{"docs":{},"l":{"docs":{},"o":{"docs":{},"e":{"docs":{},"o":{"docs":{},"q":{"docs":{},"o":{"docs":{},"y":{"2":{"docs":{},"e":{"6":{"docs":{},"z":{"2":{"docs":{},"v":{"docs":{},"x":{"docs":{},"n":{"docs":{},"u":{"3":{"docs":{},"j":{"docs":{},"e":{"docs":{},"i":{"docs":{},"k":{"6":{"docs":{},"b":{"docs":{},"d":{"docs":{},"g":{"docs":{},"p":{"docs":{},"w":{"docs":{},"n":{"docs":{},"i":{"docs":{},"w":{"3":{"docs":{},"a":{"docs":{},"x":{"docs":{},"f":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}},"docs":{}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}},".":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},".":{"docs":{},">":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013}},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}},"d":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}},"a":{"docs":{},"l":{"5":{"docs":{},"q":{"2":{"docs":{},"b":{"3":{"docs":{},"s":{"docs":{},"m":{"docs":{},"s":{"docs":{},"o":{"5":{"docs":{},"a":{"docs":{},"s":{"3":{"docs":{},"a":{"docs":{},"p":{"docs":{},"j":{"docs":{},"f":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"i":{"docs":{},"k":{"docs":{},"u":{"docs":{},"c":{"docs":{},"e":{"docs":{},"q":{"docs":{},"j":{"docs":{},"p":{"docs":{},"a":{"docs":{},"q":{"7":{"6":{"docs":{},"x":{"docs":{},"e":{"docs":{},"b":{"docs":{},"t":{"docs":{},"v":{"docs":{},"o":{"docs":{},"c":{"docs":{},"q":{"docs":{},"c":{"docs":{},"x":{"docs":{},"x":{"docs":{},"g":{"docs":{},"k":{"docs":{},"p":{"3":{"docs":{},"y":{"docs":{},"m":{"docs":{},"g":{"docs":{},"g":{"docs":{},"n":{"4":{"docs":{},"\"":{"docs":{},".":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"b":{"docs":{},"c":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006}},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},".":{"docs":{},">":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}},"l":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}},"p":{"docs":{},"h":{"docs":{},"a":{"docs":{"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526}}}}},"l":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"g":{"docs":{},"o":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"_":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{},"_":{"docs":{},"y":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"7":{"2":{"2":{"2":{"docs":{},"\"":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}},"g":{"docs":{},"\"":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.002242152466367713}}}}},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}},"o":{"2":{"docs":{},"\"":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}},"f":{"docs":{},"f":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"_":{"docs":{},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}}}}}}}}}},"a":{"docs":{},"y":{"docs":{},"i":{"3":{"docs":{},"y":{"docs":{},"u":{"docs":{},"z":{"docs":{},"s":{"docs":{},"w":{"docs":{},"d":{"docs":{},"n":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{},"d":{"2":{"docs":{},"i":{"docs":{},"n":{"3":{"docs":{},"h":{"docs":{},"z":{"docs":{},"s":{"docs":{},"i":{"docs":{},"p":{"3":{"docs":{},"j":{"docs":{},"a":{"2":{"docs":{},"e":{"3":{"docs":{},"v":{"docs":{},"d":{"docs":{},"t":{"docs":{},"x":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"i":{"docs":{},"i":{"2":{"7":{"3":{"docs":{},"x":{"docs":{},"l":{"2":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"j":{"docs":{},"p":{"6":{"4":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}},"~":{"docs":{},"/":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188}}}}}}}},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"o":{"docs":{},"p":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"o":{"docs":{},"p":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"\"":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"b":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}},"โ€":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"t":{"docs":{},"m":{"docs":{},"p":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"/":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"o":{"2":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"s":{"docs":{},"\"":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}}}}}}}}}}}}}}}}},"o":{"2":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}},"docs":{}}}},"docs":{}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"\"":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502}}}}}}}}}}},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324}}}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"_":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"c":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006}}}}},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.0035842293906810036}}}},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}}}},";":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{},"\"":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}}}}}},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}}},"=":{"docs":{},">":{"1":{"2":{"docs":{},"}":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}},"docs":{}},"docs":{}}}}}}}}},"e":{"docs":{},"c":{"9":{"3":{"3":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"d":{"2":{"docs":{},"b":{"docs":{},"d":{"8":{"6":{"docs":{},"b":{"docs":{},"c":{"docs":{},"f":{"7":{"1":{"docs":{},"d":{"5":{"5":{"5":{"docs":{},"f":{"docs":{},"c":{"8":{"docs":{},"b":{"4":{"docs":{},"f":{"docs":{},"b":{"2":{"docs":{},"c":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}},"docs":{}}}},"docs":{}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}},"docs":{}},"docs":{}},"docs":{},"h":{"docs":{},"o":{"docs":{},"\"":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"e":{"3":{"5":{"docs":{},"d":{"2":{"2":{"7":{"4":{"3":{"3":{"docs":{},"a":{"7":{"3":{"8":{"docs":{},"c":{"7":{"2":{"9":{"docs":{},"f":{"9":{"4":{"2":{"2":{"docs":{},"a":{"5":{"9":{"6":{"6":{"7":{"docs":{},"b":{"docs":{},"b":{"docs":{},"\"":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},":":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}},"d":{"2":{"5":{"5":{"1":{"9":{"docs":{},"\"":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}}}},"g":{"docs":{},"o":{"1":{"docs":{},".":{"5":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}},"docs":{}}},"docs":{}}},"docs":{},"\"":{"docs":{},",":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}},"t":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.014336917562724014}}},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.01},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},".":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.004662004662004662}}}}}}}}},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006}},")":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},"p":{"docs":{},"\"":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956}}},".":{"docs":{},">":{"docs":{},"\"":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}}},"a":{"docs":{},"a":{"docs":{},"l":{"5":{"docs":{},"q":{"2":{"docs":{},"b":{"3":{"docs":{},"s":{"docs":{},"m":{"docs":{},"\"":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276}}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"_":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}},"i":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}},"t":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}},"e":{"docs":{},"m":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"\"":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}},"s":{"docs":{},"g":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.008902077151335312}}}}},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}},"i":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"!":{"docs":{},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}},"\"":{"docs":{},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"p":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"a":{"docs":{},"z":{"docs":{},"e":{"docs":{},"y":{"docs":{},"w":{"docs":{},"z":{"docs":{},"k":{"4":{"docs":{},"o":{"5":{"2":{"docs":{},"m":{"docs":{},"e":{"docs":{},"g":{"docs":{},"w":{"docs":{},"g":{"docs":{},"k":{"4":{"docs":{},"b":{"docs":{},"h":{"3":{"docs":{},"o":{"docs":{},"s":{"docs":{},"g":{"docs":{},"y":{"docs":{},"m":{"3":{"docs":{},"p":{"3":{"docs":{},"c":{"3":{"docs":{},"f":{"3":{"docs":{},"l":{"docs":{},"f":{"2":{"docs":{},"n":{"docs":{},"g":{"docs":{},"n":{"docs":{},"z":{"docs":{},"u":{"docs":{},"s":{"2":{"4":{"docs":{},"i":{"docs":{},"v":{"docs":{},"g":{"3":{"6":{"docs":{},"\"":{"docs":{},",":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}}},"docs":{}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}}}}}}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}},"\"":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.006993006993006993}}}}}}}},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.00741839762611276}}}}}},"n":{"docs":{},"t":{"3":{"docs":{},"y":{"3":{"2":{"docs":{},"i":{"5":{"docs":{},"f":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"h":{"docs":{},"i":{"docs":{},"v":{"docs":{},"l":{"6":{"docs":{},"p":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"j":{"docs":{},"n":{"docs":{},"n":{"docs":{},"z":{"6":{"docs":{},"z":{"2":{"docs":{},"b":{"docs":{},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"j":{"2":{"docs":{},"q":{"docs":{},"w":{"docs":{},"n":{"docs":{},"a":{"3":{"docs":{},"t":{"docs":{},"p":{"docs":{},"q":{"4":{"docs":{},"a":{"4":{"docs":{},"k":{"docs":{},"b":{"docs":{},"r":{"docs":{},"g":{"docs":{},"h":{"docs":{},"q":{"docs":{},"\"":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}},"docs":{}}},"docs":{}}}}},"docs":{}}}}}},"docs":{}}}}}}},"docs":{}}},"docs":{}}}}}}}}}},"docs":{}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}},"\"":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}},";":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}},")":{"docs":{"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}}}}}}},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}}}}}}}}}},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537}},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}},"y":{"docs":{},"p":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497}}}}}}},"a":{"docs":{},"\"":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}},"l":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"4":{"4":{"3":{"docs":{},"\"":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"i":{"docs":{"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.008547008547008548}}}}},"[":{"docs":{},"#":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"}":{"docs":{},"]":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}}}}}}}}}}}}}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"\"":{"docs":{},")":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},"\"":{"docs":{},")":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}},"s":{"docs":{},"\"":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}},")":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842}},";":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}},"}":{"docs":{},")":{"docs":{},";":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}},",":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801}}}},",":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"e":{"docs":{},"\"":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}}},"t":{"docs":{},"i":{"docs":{},"\"":{"docs":{},":":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}},"w":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}},",":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}},"\"":{"docs":{},")":{"docs":{},")":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}},",":{"docs":{"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269}}}}}},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},".":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}},"#":{"docs":{},"{":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"_":{"docs":{},"f":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}},"}":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0059665871121718375}}}}}}}}}}}}}}}}}},"{":{"docs":{},"}":{"docs":{},"\"":{"docs":{},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237}}},"+":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}},"x":{"docs":{},"p":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},";":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"'":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"'":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.00860832137733142}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"'":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.006329113924050633},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414}}}}}}},"h":{"docs":{},"a":{"docs":{},"t":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996}}}}}},"u":{"docs":{},"d":{"docs":{},"x":{"docs":{},"u":{"4":{"docs":{},"r":{"docs":{},"c":{"docs":{},"s":{"docs":{},"j":{"docs":{},"n":{"docs":{},"z":{"docs":{},"o":{"docs":{},"i":{"docs":{},"q":{"docs":{},"h":{"docs":{},"z":{"docs":{},"n":{"docs":{},"w":{"docs":{},"x":{"docs":{},"h":{"docs":{},"x":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"p":{"docs":{},"r":{"docs":{},"t":{"docs":{},"g":{"docs":{},"n":{"docs":{},"j":{"docs":{},"a":{"docs":{},"h":{"docs":{},"a":{"docs":{},"h":{"docs":{},"f":{"docs":{},"r":{"docs":{},"g":{"docs":{},"z":{"docs":{},"n":{"docs":{},"e":{"docs":{},"e":{"docs":{},"j":{"docs":{},"c":{"docs":{},"p":{"docs":{},"q":{"docs":{},"t":{"docs":{},"t":{"2":{"docs":{},"m":{"7":{"docs":{},"n":{"docs":{},"l":{"docs":{},"c":{"docs":{},"n":{"docs":{},"f":{"4":{"docs":{},"'":{"docs":{},",":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}},"docs":{}}}}}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}},"n":{"docs":{},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"r":{"docs":{},"'":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.0057553956834532375}},",":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},".":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},":":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00784313725490196}},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},".":{"docs":{},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},"'":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.007194244604316547}}}}},"i":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},"'":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}}}},"n":{"docs":{},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"'":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0044444444444444444}},"s":{"docs":{},":":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}}}}},"/":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},":":{"4":{"4":{"4":{"3":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"'":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"'":{"docs":{"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}},"a":{"docs":{},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.01568627450980392}},",":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}},":":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},",":{"docs":{},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}}}},".":{"docs":{},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00392156862745098}}}},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"6":{"3":{"3":{"3":{"docs":{},"'":{"docs":{},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"1":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"2":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"3":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047}}},"docs":{}}}}}}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.0034482758620689655},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}},"t":{"docs":{},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00784313725490196}},".":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549}}}},".":{"docs":{},"'":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.0058823529411764705}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"u":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"'":{"docs":{},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}},"m":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"'":{"docs":{},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}},"w":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}}}}}}}}}},"s":{"docs":{},"l":{"docs":{},"a":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}},"'":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104}}},"{":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"}":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}},"^":{"docs":{},"]":{"docs":{},"'":{"docs":{},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},"'":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.002819548872180451}}}}}}}},"i":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}},"n":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}}}},"s":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601}}}}}},"a":{"docs":{},"x":{"docs":{},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.001984126984126984},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}},"x":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801}}}}}}}}}}},".":{"docs":{},"/":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"s":{"docs":{},"/":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"m":{"docs":{},"'":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},"'":{"docs":{},")":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"g":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}}}}}}}},",":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{},"'":{"docs":{},",":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}},"`":{"docs":{},"'":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}}}}}},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"'":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}}},"+":{"0":{"0":{"0":{"0":{"docs":{},"]":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.017241379310344827}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.013793103448275862}},"c":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164}}},"o":{"docs":{},"k":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.003284072249589491},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.027586206896551724},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0033068783068783067},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0036968576709796672}},"/":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}},":":{"6":{"2":{"2":{"2":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.010610079575596816},"leafnodes/":{"ref":"leafnodes/","tf":0.008633093525179856},"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.011235955056179775},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.014527845036319613},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.008875739644970414},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}},",":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}},":":{"1":{"docs":{},":":{"5":{"8":{"6":{"5":{"1":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"docs":{}},"9":{"2":{"2":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"5":{"3":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"docs":{}},"docs":{}},"9":{"2":{"5":{"9":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"docs":{}},"3":{"4":{"2":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"9":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"docs":{}},"7":{"0":{"8":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0037313432835820895}}},"docs":{}},"5":{"8":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"docs":{}},"8":{"1":{"7":{"docs":{"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.0018656716417910447}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"6":{"3":{"2":{"8":{"3":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},".":{"docs":{},".":{"docs":{},".":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}}}},"docs":{}},"=":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.004137931034482759},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.014354066985645933},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.013513513513513514},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.009615384615384616},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.016597510373443983},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.01193058568329718},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.015789473684210527},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.011976047904191617},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.015527950310559006},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.02610966057441253},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.007668711656441718},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.019417475728155338},"developer/streaming/connecting.html":{"ref":"developer/streaming/connecting.html","tf":0.02040816326530612},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.04225352112676056},"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.037037037037037035},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"_":{"docs":{},"a":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},"=":{"docs":{},">":{"0":{"docs":{},"}":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207}}},"]":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"=":{"docs":{},">":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.008620689655172414}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}},"t":{"docs":{},"l":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103}}}}},"y":{"docs":{},"o":{"docs":{},"u":{"docs":{},"'":{"docs":{},"l":{"docs":{},"l":{"docs":{"nats_server/clients.html":{"ref":"nats_server/clients.html","tf":0.0031645569620253164},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.008928571428571428},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.008968609865470852},"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.006896551724137931}}}},"v":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}},"d":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625}}}},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},":":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495}}}}}}}},"โ€™":{"docs":{},"l":{"docs":{},"l":{"docs":{"nats_tools/nk.html":{"ref":"nats_tools/nk.html","tf":0.0070921985815602835},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},".":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}},".":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}},"r":{"docs":{},"d":{"docs":{"developer/":{"ref":"developer/","tf":0.01639344262295082}}}}},"e":{"docs":{"nats_admin/upgrading_cluster.html":{"ref":"nats_admin/upgrading_cluster.html","tf":0.00196078431372549},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0019305019305019305}}}},"#":{"1":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}},"\"":{"docs":{},";":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}},"2":{"docs":{},"\"":{"docs":{},";":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}},".":{"docs":{"developer/streaming/":{"ref":"developer/streaming/","tf":0.0018148820326678765}}}},"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.013333333333333334},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.003401360544217687},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.003816793893129771},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.007653061224489796},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.05714285714285714},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.07777777777777778},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"nats_admin/signals.html":{"ref":"nats_admin/signals.html","tf":0.04065040650406504},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.004451038575667656},"nats_docker/":{"ref":"nats_docker/","tf":0.01291248206599713},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.024390243902439025},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.02054794520547945},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.03333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0175},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.013824884792626729},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.02727272727272727},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.02097902097902098},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.016216216216216217},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.017543859649122806},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.013888888888888888},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.014319809069212411},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.013422818791946308},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.013513513513513514},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.007211538461538462},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.006507592190889371},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.012280701754385965},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.013201320132013201},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.013440860215053764},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.007668711656441718}},"{":{"docs":{},"e":{"docs":{},"}":{"docs":{},"\"":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},"}":{"docs":{},"\"":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},"}":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}},"\"":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}},"_":{"docs":{},"a":{"docs":{},"}":{"docs":{},"\"":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}},"b":{"docs":{},"}":{"docs":{},"\"":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0010845986984815619}}}}}}}}},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"\"":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}}}}}}}}}},"?":{"docs":{},"}":{"docs":{},"\"":{"docs":{"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"p":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"}":{"docs":{},"\"":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"[":{"docs":{},":":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"]":{"docs":{},"}":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"}":{"docs":{},"\"":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}}}},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"}":{"docs":{},"\"":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}},"}":{"docs":{},"\"":{"docs":{},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"i":{"docs":{},")":{"docs":{},".":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"c":{"docs":{},"l":{"docs":{},"k":{"docs":{},"r":{"docs":{},"p":{"docs":{},"h":{"docs":{},"u":{"docs":{},"p":{"docs":{},"s":{"docs":{},"t":{"docs":{},"m":{"docs":{},"a":{"docs":{},"c":{"docs":{},"w":{"docs":{},"z":{"docs":{},"m":{"docs":{},"i":{"docs":{},"g":{"docs":{},"x":{"docs":{},"r":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}}},"=":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.005333333333333333},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.019455252918287938},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.03571428571428571},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.04065040650406504},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0273972602739726},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.018867924528301886},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.041666666666666664},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.03},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0361247947454844},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.03225806451612903},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.045454545454545456},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.03496503496503497},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.02702702702702703},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.029239766081871343},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.023148148148148147},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.03942652329749104},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.05527638190954774},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.018404907975460124},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.057279236276849645},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.026845637583892617},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.03349282296650718},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.04391891891891892},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.036057692307692304},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.04979253112033195},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.06182212581344902},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.027950310559006212},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.03333333333333333},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.03592814371257485},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.04},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.037267080745341616},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.020887728459530026},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.019801980198019802},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.032},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0213903743315508},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.01881720430107527},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.015337423312883436},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345},"developer/streaming/":{"ref":"developer/streaming/","tf":0.0054446460980036296}},"=":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}},"=":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}},">":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.024390243902439025},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.007159904534606206},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.006756756756756757},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.009615384615384616},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.005988023952095809},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.012422360248447204},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.006600660066006601},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.020161290322580645}}}},"{":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.013333333333333334},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.013736263736263736},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.01904761904761905},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.022222222222222223},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.018648018648018648},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.019287833827893175},"nats_docker/":{"ref":"nats_docker/","tf":0.010043041606886656},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.023121387283236993},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.02197802197802198},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.03361344537815126},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.032520325203252036},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.02054794520547945},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.009852216748768473},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.018433179723502304},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.037037037037037035},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.05521472392638037},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.03699284009546539},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.03827751196172249},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.037162162162162164},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.02403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.03319502074688797},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.020607375271149676},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.021739130434782608},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.014035087719298246},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.04491017964071856},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.034161490683229816},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.02349869451697128},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0165016501650165},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.036},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0427807486631016},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.05510752688172043},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.023006134969325152},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.06310679611650485},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},"f":{"docs":{},"o":{"docs":{},"o":{"docs":{},":":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.0026666666666666666}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.03125},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.01098901098901099}}}}}},"r":{"docs":{},"l":{"docs":{},"}":{"docs":{},"\"":{"docs":{},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"=":{"docs":{},"n":{"docs":{},"c":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},")":{"docs":{},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.007957559681697613}}}}}}},"\"":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"y":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"i":{"2":{"docs":{},"z":{"1":{"7":{"8":{"docs":{},"l":{"docs":{},"m":{"5":{"docs":{},"s":{"docs":{},"g":{"3":{"0":{"2":{"docs":{},"y":{"docs":{},"g":{"docs":{},"h":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"9":{"docs":{},".":{"6":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"1":{"docs":{},".":{"7":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"_":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"4":{"8":{"5":{"7":{"6":{"docs":{},"}":{"docs":{"nats_docker/tutorial.html":{"ref":"nats_docker/tutorial.html","tf":0.005555555555555556}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}}}}},"a":{"docs":{},"d":{"2":{"9":{"docs":{},"e":{"docs":{},"a":{"9":{"docs":{},"c":{"docs":{},"b":{"docs":{},"b":{"1":{"6":{"docs":{},"f":{"2":{"8":{"6":{"5":{"docs":{},"c":{"1":{"7":{"7":{"docs":{},"b":{"docs":{},"b":{"docs":{},"d":{"4":{"docs":{},"d":{"docs":{},"b":{"4":{"4":{"6":{"docs":{},"c":{"docs":{},"a":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"6":{"docs":{},".":{"8":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"1":{"docs":{},".":{"5":{"docs":{},".":{"1":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"4":{"8":{"5":{"7":{"6":{"docs":{},"}":{"docs":{"nats_protocol/nats-protocol-demo.html":{"ref":"nats_protocol/nats-protocol-demo.html","tf":0.010344827586206896}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}}}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}}}},"docs":{}}}},"docs":{}},"docs":{}}},"z":{"docs":{},"k":{"0":{"docs":{},"g":{"docs":{},"q":{"3":{"docs":{},"j":{"docs":{},"b":{"docs":{},"s":{"docs":{},"r":{"docs":{},"g":{"3":{"docs":{},"o":{"docs":{},"y":{"docs":{},"x":{"docs":{},"c":{"docs":{},"r":{"docs":{},"r":{"docs":{},"l":{"docs":{},"e":{"0":{"9":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"docs":{},".":{"2":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},",":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"1":{"docs":{},".":{"1":{"0":{"docs":{},".":{"3":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"4":{"2":{"2":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"4":{"8":{"5":{"7":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"2":{"3":{"9":{"2":{"docs":{},"}":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}}},"docs":{}}}}}}},"docs":{}}}},"docs":{}}},"k":{"docs":{},"p":{"1":{"9":{"docs":{},"v":{"docs":{},"t":{"docs":{},"l":{"docs":{},"b":{"4":{"1":{"7":{"docs":{},"x":{"docs":{},"e":{"docs":{},"l":{"docs":{},"n":{"docs":{},"v":{"8":{"docs":{},"k":{"docs":{},"k":{"docs":{},"a":{"docs":{},"c":{"5":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"0":{"docs":{},".":{"9":{"docs":{},".":{"4":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"\"":{"docs":{},":":{"5":{"2":{"2":{"2":{"docs":{},",":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"_":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"_":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"1":{"0":{"4":{"8":{"5":{"7":{"6":{"docs":{},",":{"docs":{},"\"":{"docs":{},"i":{"docs":{},"p":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}},"docs":{}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}}}}}}}}}}}},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},"\"":{"docs":{},"=":{"docs":{},">":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"g":{"docs":{},"\"":{"docs":{},",":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}}}}}}},":":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"c":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"t":{"docs":{},"l":{"docs":{},"s":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"\"":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"g":{"docs":{},"o":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"1":{"docs":{},".":{"2":{"docs":{},".":{"2":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"\"":{"docs":{},":":{"1":{"docs":{},"}":{"docs":{},"]":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}}}}}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"t":{"0":{"docs":{},"v":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"q":{"docs":{},"y":{"docs":{},"o":{"docs":{},"d":{"docs":{},"g":{"docs":{},"m":{"docs":{},"v":{"docs":{},"b":{"docs":{},"c":{"2":{"docs":{},"a":{"docs":{},"k":{"docs":{},"x":{"0":{"docs":{},"b":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}}}},"docs":{}}}}},"docs":{}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},"=":{"docs":{},">":{"docs":{},"#":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{},"k":{"docs":{"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.005494505494505495},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.008403361344537815}}}}},"e":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"}":{"docs":{},"'":{"docs":{},":":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"}":{"docs":{},"\"":{"docs":{},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}},"}":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807}},")":{"docs":{"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}},"\"":{"docs":{},".":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"(":{"docs":{},"e":{"docs":{},")":{"docs":{},")":{"docs":{"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},":":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.006211180124223602}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"z":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},":":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.01735357917570499}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.008}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"u":{"docs":{},"e":{"docs":{},":":{"docs":{"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615}}}}}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"}":{"docs":{},",":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.037037037037037035},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}},")":{"docs":{"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04}}}}}}},"[":{"docs":{},"\"":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"_":{"docs":{},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"]":{"docs":{},",":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"}":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"}":{"docs":{"nats_server/configuration.html":{"ref":"nats_server/configuration.html","tf":0.013333333333333334},"nats_server/tls.html":{"ref":"nats_server/tls.html","tf":0.006802721088435374},"nats_server/tokens.html":{"ref":"nats_server/tokens.html","tf":0.018018018018018018},"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.026785714285714284},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.015267175572519083},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.011673151750972763},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.013736263736263736},"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.002551020408163265},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.01904761904761905},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.022222222222222223},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.005305039787798408},"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0036496350364963502},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.013986013986013986},"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.005517241379310344},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.002967359050445104},"nats_docker/":{"ref":"nats_docker/","tf":0.010043041606886656},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.006726457399103139},"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154},"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.011560693641618497},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.009868421052631578},"developer/concepts/pubsub.html":{"ref":"developer/concepts/pubsub.html","tf":0.010526315789473684},"developer/concepts/reqreply.html":{"ref":"developer/concepts/reqreply.html","tf":0.02197802197802198},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/concepts/acks.html":{"ref":"developer/concepts/acks.html","tf":0.03361344537815126},"developer/concepts/seq_num.html":{"ref":"developer/concepts/seq_num.html","tf":0.00980392156862745},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.007547169811320755},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.0075},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.018433179723502304},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.013888888888888888},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.05521472392638037},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.03818615751789976},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.019138755980861243},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.02702702702702703},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.01201923076923077},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.024896265560165973},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.01193058568329718},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.03293413173652695},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.021739130434782608},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.02349869451697128},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.036},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0374331550802139},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.03225806451612903},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.019938650306748466},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.006666666666666667},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.024271844660194174},"developer/streaming/publishing.html":{"ref":"developer/streaming/publishing.html","tf":0.014084507042253521},"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}},")":{"docs":{},";":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.024390243902439025},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.0136986301369863},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.011320754716981131},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.01},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.013136288998357963},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.01818181818181818},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.013986013986013986},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.010810810810810811},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.018518518518518517},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.019138755980861243},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.010135135135135136},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.009615384615384616},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.008298755186721992},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.008676789587852495},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.009316770186335404},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.017964071856287425},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.009316770186335404},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.020161290322580645},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},",":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.014563106796116505}}},".":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.006134969325153374}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}},",":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.002331002331002331},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.016320474777448073},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0035087719298245615},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.011363636363636364}}},"'":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}}},"\"":{"docs":{},"]":{"docs":{},";":{"docs":{"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.0064516129032258064}}}}},"(":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}},"]":{"docs":{"nats_server/username_password.html":{"ref":"nats_server/username_password.html","tf":0.017857142857142856},"nats_server/tls_mutual_auth.html":{"ref":"nats_server/tls_mutual_auth.html","tf":0.007633587786259542},"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876},"nats_server/auth_timeout.html":{"ref":"nats_server/auth_timeout.html","tf":0.015625},"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475},"nats_server/cluster_config.html":{"ref":"nats_server/cluster_config.html","tf":0.009523809523809525},"nats_server/cluster_tls.html":{"ref":"nats_server/cluster_tls.html","tf":0.011111111111111112},"gateways/gateway.html":{"ref":"gateways/gateway.html","tf":0.002652519893899204},"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_server/monitoring.html":{"ref":"nats_server/monitoring.html","tf":0.009324009324009324},"nats_docker/":{"ref":"nats_docker/","tf":0.007173601147776184},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.011695906432748537}},",":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.002386634844868735}}},")":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}},"}":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}},"`":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"_":{"docs":{},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"d":{"docs":{},"`":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}}}}}},"o":{"docs":{},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{},"s":{"docs":{"leafnodes/leafnode_conf.html":{"ref":"leafnodes/leafnode_conf.html","tf":0.0056179775280898875}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"'":{"docs":{"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576}}}}},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"docs":{},"$":{"docs":{},"{":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"}":{"docs":{},"`":{"docs":{},",":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"m":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{},"@":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"docs":{},"$":{"docs":{},"{":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"}":{"docs":{},"`":{"docs":{},";":{"docs":{"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"!":{"docs":{},"@":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"docs":{},"$":{"docs":{},"{":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"}":{"docs":{},"`":{"docs":{},";":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},":":{"docs":{},"m":{"docs":{},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},"!":{"docs":{},"@":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"docs":{},"$":{"docs":{},"{":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"}":{"docs":{},"`":{"docs":{},";":{"docs":{"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.005025125628140704}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_server/logging.html":{"ref":"nats_server/logging.html","tf":0.0072992700729927005}}}}},"s":{"docs":{},"e":{"docs":{},"q":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.005917159763313609}}}},"s":{"docs":{},"l":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},"`":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"x":{"docs":{},"`":{"docs":{"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.004807692307692308}}}}}}},"โ€˜":{"docs":{},"s":{"docs":{},"u":{"docs":{},"a":{"docs":{},"c":{"docs":{},"s":{"docs":{},"s":{"docs":{},"l":{"3":{"docs":{},"u":{"docs":{},"a":{"docs":{},"h":{"docs":{},"u":{"docs":{},"d":{"docs":{},"x":{"docs":{},"k":{"docs":{},"f":{"docs":{},"s":{"docs":{},"n":{"docs":{},"v":{"docs":{},"u":{"docs":{},"z":{"docs":{},"r":{"docs":{},"f":{"5":{"docs":{},"u":{"docs":{},"h":{"docs":{},"p":{"docs":{},"m":{"docs":{},"w":{"docs":{},"z":{"6":{"docs":{},"b":{"docs":{},"f":{"docs":{},"d":{"docs":{},"t":{"docs":{},"j":{"7":{"docs":{},"m":{"6":{"docs":{},"u":{"docs":{},"s":{"docs":{},"d":{"docs":{},"x":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},"n":{"docs":{},"p":{"docs":{},"p":{"docs":{},"q":{"docs":{},"y":{"docs":{},"y":{"docs":{},"y":{"docs":{},"c":{"docs":{},"u":{"3":{"docs":{},"v":{"docs":{},"y":{"docs":{},"โ€™":{"docs":{},";":{"docs":{"nats_server/nkey_auth.html":{"ref":"nats_server/nkey_auth.html","tf":0.0038910505836575876}}}}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}},"docs":{}}}}}}},"docs":{}}}}}}}},"docs":{}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"โ€™":{"docs":{},":":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}},"a":{"docs":{},".":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},".":{"docs":{},"d":{"docs":{},"โ€™":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}},"โ€”":{"docs":{"nats_server/jwt_auth.html":{"ref":"nats_server/jwt_auth.html","tf":0.0015822784810126582},"gateways/":{"ref":"gateways/","tf":0.002178649237472767}},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.0078125}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"p":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}},"_":{"docs":{"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{},".":{"4":{"docs":{},"c":{"3":{"5":{"docs":{},"d":{"1":{"8":{"7":{"0":{"1":{"9":{"7":{"9":{"docs":{},"f":{"8":{"docs":{},"c":{"8":{"docs":{},"e":{"docs":{},"d":{"7":{"docs":{},"e":{"5":{"docs":{},"f":{"6":{"docs":{},"e":{"docs":{},"a":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}},".":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.0027472527472527475}}},">":{"docs":{"nats_server/authorization.html":{"ref":"nats_server/authorization.html","tf":0.008241758241758242}}},"b":{"8":{"docs":{},"d":{"8":{"docs":{},"c":{"0":{"1":{"7":{"5":{"3":{"docs":{},"d":{"7":{"8":{"docs":{},"e":{"5":{"6":{"2":{"docs":{},"e":{"4":{"docs":{},"d":{"docs":{},"c":{"5":{"6":{"1":{"docs":{},"f":{"1":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"a":{"9":{"6":{"docs":{},"f":{"3":{"docs":{},"f":{"6":{"8":{"5":{"3":{"6":{"1":{"6":{"1":{"5":{"4":{"docs":{},"d":{"2":{"3":{"docs":{},"d":{"1":{"docs":{},"b":{"5":{"0":{"7":{"2":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00273224043715847}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"m":{"docs":{},"y":{"docs":{},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"s":{"docs":{},".":{"docs":{},",":{"docs":{"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}}}}}}},"&":{"docs":{"nats_server/clustering.html":{"ref":"nats_server/clustering.html","tf":0.0012755102040816326},"nats_docker/":{"ref":"nats_docker/","tf":0.0014347202295552368},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"developer/concepts/queue.html":{"ref":"developer/concepts/queue.html","tf":0.006622516556291391},"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}},"&":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"{":{"docs":{},"s":{"docs":{},"y":{"docs":{},"m":{"docs":{},"b":{"docs":{},"o":{"docs":{},"l":{"docs":{},":":{"docs":{"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004}}}}}}}}}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},"{":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}},"~":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.0406885758998435}},"/":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"f":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.004316546762589928}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"o":{"docs":{},"p":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"u":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.005934718100890208}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0018796992481203006},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"c":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"b":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0028957528957528956}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"n":{"docs":{},"k":{"docs":{},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}},",":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}},"s":{"docs":{},"c":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094}}},"/":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{},".":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}},"s":{"docs":{},"a":{"docs":{},"o":{"docs":{},"p":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}},".":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"s":{"docs":{},"c":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}}}}}}}}},"โ”‚":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.050359712230215826},"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.011869436201780416},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.148109243697479},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.24060150375939848},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.2471042471042471},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.14225941422594143},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.05082212257100149},"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.17735849056603772}}},"โ”œ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0028776978417266188},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.007518796992481203},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.007722007722007722}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.0041841004184100415}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.007547169811320755}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0021008403361344537},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0029895366218236174}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ค":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ฌ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ผ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ค":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ•ญ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฎ":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฎ":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฎ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฎ":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฎ":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}}}}}}}}}}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}},"โ•ฎ":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ•ฐ":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"leafnodes/":{"ref":"leafnodes/","tf":0.0014388489208633094},"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653},"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0037593984962406013},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.003861003861003861}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nas/mem_resolver.html":{"ref":"nats_tools/nas/mem_resolver.html","tf":0.0037735849056603774}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268},"nats_tools/nas/nas_conf.html":{"ref":"nats_tools/nas/nas_conf.html","tf":0.0014947683109118087}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/signing_keys.html":{"ref":"nats_tools/nsc/signing_keys.html","tf":0.001394700139470014}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ•ฏ":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503},"nats_tools/nsc/services.html":{"ref":"nats_tools/nsc/services.html","tf":0.0009652509652509653}}}}}}}}}}}}}}}}}}}}}}},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”ด":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ”€":{"docs":{},"โ•ฏ":{"docs":{"nats_tools/nsc/streams.html":{"ref":"nats_tools/nsc/streams.html","tf":0.0009398496240601503}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"!":{"docs":{},"=":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.005714285714285714},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/nkey.html":{"ref":"developer/security/nkey.html","tf":0.012269938650306749},"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.00477326968973747},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.020134228187919462},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.009569377990430622},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.016891891891891893},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.01201923076923077},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.012448132780082987},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.007592190889370932},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.006211180124223602},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.008982035928143712},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.013333333333333334},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.012422360248447204},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.015665796344647518},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.009900990099009901},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.012},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}}}},"%":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.015086206896551725},"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.012106537530266344},"nats_streaming/nats-streaming-tls.html":{"ref":"nats_streaming/nats-streaming-tls.html","tf":0.00390625},"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.0029585798816568047},"nats_tools/nats_top/tutorial.html":{"ref":"nats_tools/nats_top/tutorial.html","tf":0.009328358208955223},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.01564945226917058},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.03333333333333333},"developer/tutorials/reqreply.html":{"ref":"developer/tutorials/reqreply.html","tf":0.03418803418803419},"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},"d":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},"q":{"docs":{},".":{"docs":{},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586}}}}}}}},"v":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454}},"\"":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.002758620689655172},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},"\\":{"docs":{},"n":{"docs":{},"\"":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0106951871657754},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}}},"g":{"docs":{},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"%":{"docs":{},".":{"docs":{"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.001564945226917058}}}}}}}}}},"s":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}},"\"":{"docs":{},",":{"docs":{"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}}}}},"*":{"6":{"docs":{},".":{"docs":{"developer/tutorials/queues.html":{"ref":"developer/tutorials/queues.html","tf":0.005}}}},"docs":{"nats_streaming/nats-streaming-install.html":{"ref":"nats_streaming/nats-streaming-install.html","tf":0.024213075060532687},"developer/concepts/subjects.html":{"ref":"developer/concepts/subjects.html","tf":0.003289473684210526},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/buffer.html":{"ref":"developer/reconnect/buffer.html","tf":0.011428571428571429},"developer/receiving/sync.html":{"ref":"developer/receiving/sync.html","tf":0.006711409395973154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.007832898172323759},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.006134969325153374},"developer/tutorials/pubsub.html":{"ref":"developer/tutorials/pubsub.html","tf":0.0022222222222222222},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.014563106796116505}},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.009708737864077669}},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}},")":{"docs":{"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.009259259259259259},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.014563106796116505}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"nats_admin/slow_consumers.html":{"ref":"nats_admin/slow_consumers.html","tf":0.001379310344827586},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436}}}}}}}}}}}}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.003067484662576687}}}}}}}}}},"o":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.002442002442002442}}}}},"a":{"docs":{},"l":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}}}}}}},"m":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"nats_streaming/nats-streaming-protocol.html":{"ref":"nats_streaming/nats-streaming-protocol.html","tf":0.001221001221001221}},"*":{"docs":{"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0016420361247947454},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.002688172043010753}}}}}},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"*":{"docs":{"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.004338394793926247}}}}}}},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}},"*":{"docs":{"nats_tools/mkpasswd.html":{"ref":"nats_tools/mkpasswd.html","tf":0.006711409395973154}},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.014925373134328358}},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{},"*":{"docs":{"developer/security/creds.html":{"ref":"developer/security/creds.html","tf":0.007462686567164179}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}}}}}},"a":{"docs":{},"n":{"docs":{},".":{"docs":{},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},")":{"docs":{"developer/streaming/receiving.html":{"ref":"developer/streaming/receiving.html","tf":0.037037037037037035},"developer/streaming/durables.html":{"ref":"developer/streaming/durables.html","tf":0.023809523809523808},"developer/streaming/queues.html":{"ref":"developer/streaming/queues.html","tf":0.04},"developer/streaming/acks.html":{"ref":"developer/streaming/acks.html","tf":0.022727272727272728}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"nats_protocol/nats-client-dev.html":{"ref":"nats_protocol/nats-client-dev.html","tf":0.002079002079002079}}}}}}}}}}},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}}}}}}}}}}}}}}}},"\\":{"docs":{"nats_streaming/nats-streaming-swarm.html":{"ref":"nats_streaming/nats-streaming-swarm.html","tf":0.020710059171597635}},"$":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},".":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"n":{"docs":{},"c":{"7":{"docs":{},"a":{"docs":{},"k":{"docs":{},"p":{"docs":{},"q":{"docs":{},"r":{"docs":{},"c":{"6":{"docs":{},"c":{"docs":{},"i":{"docs":{},"z":{"docs":{},"g":{"docs":{},"w":{"docs":{},"r":{"docs":{},"j":{"docs":{},"o":{"docs":{},"t":{"docs":{},"v":{"docs":{},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{},"v":{"docs":{},"s":{"docs":{},"l":{"7":{"docs":{},"v":{"docs":{},"w":{"7":{"docs":{},"w":{"docs":{},"x":{"docs":{},"t":{"docs":{},"q":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"j":{"docs":{},"f":{"docs":{},"n":{"docs":{},"g":{"7":{"docs":{},"h":{"docs":{},"t":{"docs":{},"c":{"docs":{},"m":{"docs":{},"c":{"docs":{},"k":{"docs":{},"q":{"docs":{},"t":{"docs":{},"g":{"docs":{},"e":{"5":{"docs":{},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"z":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}},"docs":{}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}},"docs":{}}},"p":{"docs":{"sys_accounts/sys_accounts.html":{"ref":"sys_accounts/sys_accounts.html","tf":0.001483679525222552}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613}},",":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0006613756613756613},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0009242144177449168}}},"[":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"]":{"docs":{},"\\":{"docs":{},"r":{"docs":{},"\\":{"docs":{},"n":{"docs":{"nats_protocol/nats-protocol.html":{"ref":"nats_protocol/nats-protocol.html","tf":0.0013227513227513227},"nats_protocol/nats-server-protocol.html":{"ref":"nats_protocol/nats-server-protocol.html","tf":0.0018484288354898336}}}}}}}}}}}}}}}}}}},"|":{"docs":{"nats_docker/":{"ref":"nats_docker/","tf":0.005738880918220947},"nats_streaming/nats-streaming-intro.html":{"ref":"nats_streaming/nats-streaming-intro.html","tf":0.004484304932735426},"nats_tools/nsc/":{"ref":"nats_tools/nsc/","tf":0.010526315789473684},"nats_tools/natsbench.html":{"ref":"nats_tools/natsbench.html","tf":0.014084507042253521},"developer/concepts/intro.html":{"ref":"developer/concepts/intro.html","tf":0.01935483870967742}},"e":{"docs":{},"|":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}},"m":{"docs":{},"s":{"docs":{},"g":{"docs":{},",":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.004310344827586207},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0021691973969631237},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.005263157894736842},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533}}},"|":{"docs":{"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004}}}}}},"n":{"docs":{},"c":{"docs":{},"|":{"docs":{"nats_docker/docker_swarm.html":{"ref":"nats_docker/docker_swarm.html","tf":0.0021551724137931034},"developer/connecting/default_server.html":{"ref":"developer/connecting/default_server.html","tf":0.008130081300813009},"developer/connecting/specific_server.html":{"ref":"developer/connecting/specific_server.html","tf":0.00684931506849315},"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774},"developer/connecting/connect_timeout.html":{"ref":"developer/connecting/connect_timeout.html","tf":0.008333333333333333},"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/connecting/noecho.html":{"ref":"developer/connecting/noecho.html","tf":0.004608294930875576},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/token.html":{"ref":"developer/security/token.html","tf":0.010050251256281407},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.003579952267303103},"developer/receiving/async.html":{"ref":"developer/receiving/async.html","tf":0.004784688995215311},"developer/receiving/unsubscribing.html":{"ref":"developer/receiving/unsubscribing.html","tf":0.0033783783783783786},"developer/receiving/unsub_after.html":{"ref":"developer/receiving/unsub_after.html","tf":0.002403846153846154},"developer/receiving/reply.html":{"ref":"developer/receiving/reply.html","tf":0.004149377593360996},"developer/receiving/wildcards.html":{"ref":"developer/receiving/wildcards.html","tf":0.0032537960954446853},"developer/receiving/queues.html":{"ref":"developer/receiving/queues.html","tf":0.003105590062111801},"developer/receiving/drain.html":{"ref":"developer/receiving/drain.html","tf":0.0017543859649122807},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044},"developer/sending/intro.html":{"ref":"developer/sending/intro.html","tf":0.006666666666666667},"developer/sending/replyto.html":{"ref":"developer/sending/replyto.html","tf":0.003105590062111801},"developer/sending/request_reply.html":{"ref":"developer/sending/request_reply.html","tf":0.0026109660574412533},"developer/sending/caches.html":{"ref":"developer/sending/caches.html","tf":0.0033003300330033004},"developer/sending/structure.html":{"ref":"developer/sending/structure.html","tf":0.004},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"|":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/connecting/protocol.html":{"ref":"developer/connecting/protocol.html","tf":0.0049261083743842365},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/security/userpass.html":{"ref":"developer/security/userpass.html","tf":0.007168458781362007},"developer/security/tls.html":{"ref":"developer/security/tls.html","tf":0.0011933174224343676}}}}}}}}}},"โ€™":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"s":{"docs":{},"โ€™":{"docs":{"nats_tools/nsc/nsc.html":{"ref":"nats_tools/nsc/nsc.html","tf":0.0010504201680672268}}}}}}}},"?":{"docs":{"nats_tools/nats_top/":{"ref":"nats_tools/nats_top/","tf":0.00546448087431694},"developer/receiving/structure.html":{"ref":"developer/receiving/structure.html","tf":0.0029940119760479044}},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"=":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},".":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}}}}}}}}}}}}}},"โ€ฆ":{"docs":{"nats_tools/nas/inspecting_jwts.html":{"ref":"nats_tools/nas/inspecting_jwts.html","tf":0.005780346820809248}}},")":{"docs":{"developer/connecting/pingpong.html":{"ref":"developer/connecting/pingpong.html","tf":0.005},"developer/reconnect/disable.html":{"ref":"developer/reconnect/disable.html","tf":0.00909090909090909},"developer/reconnect/max.html":{"ref":"developer/reconnect/max.html","tf":0.006993006993006993},"developer/reconnect/wait.html":{"ref":"developer/reconnect/wait.html","tf":0.005405405405405406},"developer/reconnect/random.html":{"ref":"developer/reconnect/random.html","tf":0.005847953216374269},"developer/reconnect/events.html":{"ref":"developer/reconnect/events.html","tf":0.004629629629629629},"developer/events/intro.html":{"ref":"developer/events/intro.html","tf":0.0053475935828877},"developer/events/events.html":{"ref":"developer/events/events.html","tf":0.0013440860215053765},"developer/events/slow.html":{"ref":"developer/events/slow.html","tf":0.0015337423312883436},"developer/tutorials/custom_dialer.html":{"ref":"developer/tutorials/custom_dialer.html","tf":0.0048543689320388345}},";":{"docs":{"developer/connecting/cluster.html":{"ref":"developer/connecting/cluster.html","tf":0.0037735849056603774}}}}},"length":18175},"corpusTokens":["!=","\"","\"\"","\"\")","\"\",","\"\";","\"#{time.now.to_f","\"#{time.now.to_f}","\"$2a$11$pwifal8rswygi3jvzto9nu8.6joxzxfzo7c/w0elk017hjgukwrhy\"","\"$2a$11$v1qrpbt8/slfebr4njq4t.2mg8chx8.mtbluitbolv3mkdeay.f7u\"},","\"%nats_path%\\nat","\"+","\"+error);","\"+event);","\"+exp.getlocalizedmessage());","\"+server);","\",","\",\"))","\",\"),","\".\"","\"./configs/certs/ca.pem\"","\"./configs/certs/serv","\"./configs/certs/srva","\"./server","\"/tmp/nat","\"/users/synadia/.nkeys/memory/accounts/a/a.nk\"","\"/users/synadia/.nkeys/memory/memory.nk\"","\"/users/synadia/.nkeys/o2/accounts/a/a.nk\"","\"/users/synadia/.nkeys/o2/accounts/a/users/u.creds\"","\"/users/synadia/.nkeys/o2/accounts/a/users/u.nk\"","\"/users/synadia/.nkeys/o2/o2.nk\"","\"0.0.0.0\",","\"0.5.0\",","\"0.6.6\",","\"1.0.9\",","\"1.7.0\",","\"127.0.0.1\",","\"127.0.0.1:4000\"","\"1m33s\",","\"2.0.0","\"2015","\"2019","\"3secret\"","\"53yi78q96t52qdyywlkiye\"","\"5ymro4knmywqdmrahvtt4kx63ca2l3m6f4vm3s7nngpmccatorxq\",","\":","\">\"","\"[#{time.now}]","\"\\r\\n\".","\"_inbox.>\"","\"_inbox.>\"]","\"a\"","\"a\")","\"a\",","\"a\":","\"a.b.c.>\"","\"a.b.c.>\",","\"a.b.c.d\"","\"aal5q2b3smso5as3apjfunaikuceqjpaq76xebtvocqcxxgkp3ymggn4\".","\"abc\"","\"abc\",","\"abc.>\"","\"ac7po3mrev26u3lfzfp5bn3hai32x3pklbrvmpaetlehwpqeug7ejy4h\",","\"acc\":","\"account\",","\"accountb\"","\"ack:#{msg}\")","\"active_accounts\":","\"adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf\",","\"alg\":","\"all","\"alpha","\"america/chicago\"});","\"america/denver\"});","\"america/los_angeles\"});","\"america/new_york\"});","\"auth_required\":","\"avg_fanout\":","\"avoid","\"b\"","\"b\")","\"b\",","\"bytes\":","\"c\"","\"c\")","\"c\",","\"c\"]","\"cache_hit_rate\":","\"cid\":","\"client","\"client\":","\"closed\"","\"cluster\"","\"cn=example.com,ou=cncf\"}","\"connect","\"connect_urls\":[\"10.0.0.184:4333\",\"192.168.129.1:4333\",\"192.168.192.1:4333\"]","\"connected\"","\"connections\":","\"conns\":","\"context\"","\"cores\":","\"cpu\":","\"d\")","\"de475c0041418afc799bccf0fdd61b47\",","\"deadbeef\")","\"demo.nats.io\"","\"derek@nats.io\"}","\"did_solicit\":","\"done","\"durabl","\"ec933edcd2bd86bcf71d555fc8b4fb2c\",","\"echo\"","\"ed25519\"","\"ee35d227433a738c729f9422a59667bb\"","\"error:","\"exports\":","\"f0obar\"","\"foo\"","\"foo\",","\"foo\".","\"github.com/nat","\"go\",","\"go\":","\"go1.5.0\",","\"goog\",","\"got","\"hello","\"hello\"","\"hello\")","\"hello.world\"","\"help\"","\"help.>\"","\"help.aal5q2b3sm\"","\"help.please\"","\"hi\",","\"hit","\"host\":","\"http_port\":","\"i","\"iat\":","\"id\":","\"in_bytes\":","\"in_msgs\":","\"initi","\"ip\":","\"irepas80tbwjbyulx1ulap\"","\"iss\":","\"iy4zuwlnloto5n5udlofebcomhb6mkqmk4zela2bspkmxsearxoa\"","\"joe\"","\"jti\":","\"jwt\",","\"knock","\"lang\":","\"last","\"leaf\"","\"leaf\":","\"limit\":","\"localhost:7222\"","\"log\"","\"max_connections\":","\"max_control_line\":","\"max_fanout\":","\"max_payload\":","\"maximum","\"mem\":","\"memory\"","\"mi","\"msg","\"msg:","\"msgs\":","\"myname\",","\"mytoken!\"});","\"mytoken\"});","\"name\":","\"nat","\"nats\":","\"nats://127.0.0.1:1222\",","\"nats://127.0.0.1:1223\",","\"nats://127.0.0.1:1224\"","\"nats://127.0.0.1:1224\"])","\"nats://127.0.0.1:1224\"],","\"nats://192.168.59.103:7222\"","\"nats://192.168.59.105:7222\"","\"nats://demo.nats.io:1222\",","\"nats://demo.nats.io:1223\",","\"nats://demo.nats.io:1224\"","\"nats://demo.nats.io:4222\"","\"nats://demo.nats.io:4222\",","\"nats://demo.nats.io:4222\"});","\"nats://localhost:1223\",","\"nats://localhost:1224\",","\"nats://localhost:4222\"","\"nbtgvy3okdkeajpuxrhzlkbcrh3lwckz6zxtajrs2rmyn3pmdrmuzwpr\",","\"nc7akpqrc6cizgwrjotvfigvsl7vw7wxtqctujfng7htcmckqtge5pul\",","\"nczqdux77osstgn2eseocp4x7gismarx3h4dbgzby34vlai4tqepk6p6\",","\"net\"","\"no","\"nolimit\"","\"not","\"now\":","\"num_cache\":","\"num_connections\":","\"num_inserts\":","\"num_matches\":","\"num_removes\":","\"num_routes\":","\"num_subscriptions\":","\"o\"","\"o\":","\"o2\"","\"oayi3yuzswdnmerd2in3hzsip3ja2e3vdtxstevoiii273xl2nabjp64\",","\"offset\":","\"other\"","\"out_bytes\":","\"out_msgs\":","\"pabc\"","\"password\"))","\"password\";","\"password\"});","\"pending_size\":","\"phelp\"","\"ping_interval\":","\"ping_max\":","\"port\":","\"postrotate\"","\"price\":","\"price\"=>12}","\"reason\":","\"received\":","\"reconnect","\"remote_id\":","\"remotes\":","\"repli","\"reply:","\"req.b\"]","\"request","\"resources/certs/key.pem\"),","\"response\")","\"rid\":","\"routes\":","\"ruby\",","\"s3cr3t\"","\"sandbox.*\"","\"saop\"","\"secret\"","\"seed\"","\"sent\":","\"seq\":","\"server\":","\"server_id\":","\"slow","\"slow_consumers\":","\"some","\"src/main/resources/cacerts\";","\"src/main/resources/keystore.jks\";","\"srv\"","\"ssl_required\":","\"ssl_timeout\":","\"stan\"","\"start\":","\"stats_time\":","\"statsz\":","\"stop\":","\"stream\"","\"streaming.\"","\"sub\":","\"subject\":","\"subscriptions\":","\"subscriptions_list\":","\"sunx509\";","\"sys\"","\"sysu\"","\"ta\"","\"test\"","\"testaccount\"","\"testaccount\",","\"testuser\"","\"thi","\"time\"","\"time\":","\"tls://demo.nats.io:4443\"","\"tls://demo.nats.io:4443\",","\"total_connections\":","\"total_conns\":","\"typ\":","\"type\":","\"u\"","\"uacpexcazeywzk4o52megwgk4bh3osgym3p3c3f3lf2ngnzus24ivg36\",","\"updates\"","\"uptime\":","\"user\":","\"ver\":","\"version\":","\"vnt3y32i5fntehivl6pinejnnz6z2bggej2qwna3tpq4a4kbrghq\"","\"worker\")","\"worker\",","\"workers\"","\"workers\")","\"workers\");","\"workers\",","\"workers\"});","\"workers\"},","\"world\")","\"xzfu3u7usapwkuthomogzm\"","\"{}\".format(datetime.now()).encode()","\"~/.nkeys/o/accounts/a/a.nk\"","\"~/.nkeys/o/accounts/a/users/leaf.creds\"","\"~/.nkeys/o/accounts/a/users/leaf.nk\"","\"~/.nkeys/o/accounts/a/users/nolimit.creds\"","\"~/.nkeys/o/accounts/a/users/nolimit.nk\"","\"~/.nkeys/o/o.nk\"","\"~/.nkeys/saop/accounts/sys/sys.nk\"","\"~/.nkeys/saop/accounts/sys/users/sysu.creds\"","\"~/.nkeys/saop/accounts/sys/users/sysu.nk\"","\"~/.nkeys/saop/saop.nk\"","\"~/.nkeys/test/accounts/accountb/users/userb.creds\"","\"~/.nkeys/test/accounts/accountb/users/userbโ€","\"~/.nkeys/test/accounts/testaccount/users/testuser.creds\"","\"~/.nkeys/test/accounts/testaccount/users/testuser.nk\"","#","#1","#1\";","#2\";","#2.","#bytes:","#iclkrphupstmacwzmigxr","#{e}\"","#{inbox}\"","#{msg_a}\"","#{msg_b}\"","#{msg}","#{msg}\"","#{nc.connected?}\"","#{nc.connected_server}\"","#{nc.connected_server},","#{nc.server_info[:max_payload]}","#{nc.server_pool}\"","#{reason}\"","#{reply}\"","#{}\".format(i).encode())","$","$(pwd)/conf/nat","$.getjson('http://localhost:8222/connz?callback=?',","$2a$11$1ojy/wzyntxr9jnwmnws3eughbpht3on8cl9o7ey89mpgo88vg6ba","$2a$11$3kidacxw.glsl1.u5nka6eunndlv5hv9tiuup7ehhmt6nm9myw1a","$2a$11$pwifal8rswygi3jvzto9nu8.6joxzxfzo7c/w0elk017hjgukwrhi","$2a$11$v1qrpbt8/slfebr4njq4t.2mg8chx8.mtbluitbolv3mkdeay.f7u","$2a$11$xh8dkgrty1cbntzjhpewjewu/ypbsu.rxjwms6sfilobxzmzomk9m","$admin_pass,","$admin}","$client_pass,","$g","$gopath","$gopath/src/github.com/nat","$i","$nkeys_path","$nsc_home","$nsc_home/nats//.jwt","$nsc_home/nats//accounts//.jwt","$other_pass}","$random","$requestor}","$responder}","$service_pass,","$sys.account..claims.upd","$sys.account..connect","$sys.account..disconnect","$sys.account..leafnode.connect","$sys.req.server..statsz","$sys.req.server.p","$sys.req.server.ping),","$sys.req.server.ping.","$sys.server..client.auth.err","$sys.server..statsz","$sys.server.account..conn","$token","%","%d","%gopath%.","%q.\\n\",","%s","%s\",","%v","%v\",","%v\\n\",","&","&&","&customdialer{","&stock{symbol:","'","''","',ce.added,","'...')","'./spec/configs/certs/key.pem',","'./spec/configs/certs/server.pem'","'0.0.0.0'","':","'^]'.","'`'","'a'","'a',","'a':","'a,'","'a.'","'added:","'attempt","'author","'b'","'b'.","'b':","'b.'","'b.',","'bar'","'bar',","'bar'.","'bar':","'dontrandomize'","'error'","'example',","'fiber'","'foo'","'goog',","'hello","'hello'","'i","'invalid","'json'","'localhost:6333'.","'maximum","'me'","'ms');","'nat","'nats'","'nats/client'","'nats://demo.nats.io:4443',","'nats://localhost:4222',","'nats:latest'","'nolimit'","'norandomize').","'parser","'pedantic'","'permiss","'removed:',","'secur","'seed","'sequence:1","'sequence:2","'sequence:3","'slow","'stale","'t'","'t'.","'t.'","'time.us.central':","'time.us.east':","'time.us.mountain':","'time.us.west':","'tsla')","'udxu4rcsjnzoiqhznwxhxordprtgnjahahfrgzneejcpqtt2m7nlcnf4',","'unknown","'verbose'","'what","'world'","'{","'{subject}","(","(\"daily\"","(\"ok,","(\"rotate\"","('0.0.0.0').","()","(*)","(.),","(...gzm)","(...gzm).","(1","(10000000","(2000000","(2019","(3)","(5","(5).","(64","(>),","(_inbox.>).","(a","(accounts,","(acks)","(and","(authent","(both","(but","(c)","(cd","(ce)","(centos),","(client","(conn,","(connect","(convert","(cr+lf,","(default","(default:","(describ","(disconnected).","(discov","(discuss","(dot","(e.g.","(ed25519)","(err)","(err,","(even","(event","(except","(exclus","(foo.*.baz","(foo.bar),","(for","(generalsecurityexception|ioexception|nullpointerexcept","(go).","(hello),","(here","(http://localhost:9090/jwt/v1/accounts/)","(https://developers.google.com/protocol","(if","(in","(inbox)","(includ","(jti).","(jwt)","(lame","(leaf","(leaf.conf)","(limit","(localhost:4248).","(localhost:7333)","(localhost:7444)","(messag","(more","(msg)","(msg,","(msg.reply)","(msg.subject)","(nat","(nats)","(nats://localhost:4222)]","(nbhwdfo3khanni6uceul27vnwl7nwd2mc4bi4l2c7vvlfbsmz3crd7he)","(nc)","(nc,","(nc:","(nd2ujb3gfuhxoq2uumzqgocl4qvr2lrjodpzh7mipglwcqrarjbu27c3)","(net.conn,","(ngs)","(no","(nonce)","(not","(number","(one","(onli","(oper","(operators,","(optional)","(or","(pid).","(provid","(pub),","(request","(rewrit","(same","(san)","(see","(seed)","(semi","(server","(server.conf)","(set","(sid)","(sign","(sinc","(slow","(solid","(space)","(specifi","(stat","(string","(subject)","(such","(tab).","(the","(to","(token_req","(type","(uffs#rg42pau#oxi^bnng","(unless","(uptime:","(url","(url)","(urls)","(user/password/token","(usual","(util/mkpasswd.go).","(valu","(version","(via","(x86,","(you","(~/.nsc/nats//.jwt)",")",");","*","******","*******","*************************","*************************************************************","*6.","*alway","*customdialer)","*many*","*must","*must*","*nats.conn","*nats.conn)","*nats.conn,","*nats.msg)","*nats.subscription,","*not","*stan.msg)","*stock)","*subscript","+","+0000]","+c","+ok","+ok/","+ok/err",",",".","...","...iy","./auth.conf","./nat","./seed.conf","./util/mkpasswd",".bar",".catch/.fin",".cluster",".cred",".jwt.",".then((c)",".these","/","//","//10","//20","/applications/python\\","/config/fil","/connz","/jwt/v1/accounts.","/jwt/v1/accounts/.","/path/to/file/storing/se","/path/to/nat","/routez","/src/main/resources/tls.conf","/src/main/resources/tls_verify.conf","/subsz","/tmp/activation.jwt","/tmp/activation.jwt.","/tmp/cluster.conf","/tmp/jwt","/users/synadia/.nkeys/memory/accounts/a/users/ta.cr","/users/synadia/.nkeys/o/accounts/a/users/leaf.cr","/users/synadia/.nsc/nats/memory/accounts/a/a.jwt","/users/synadia/.nsc/nats/memory/memory.jwt","/users/synadia/.nsc/nats/o/o.jwt","/users/synadia/.nsc/nats/saop/saop.jwt","/users/synadia/.nsc/nats/test","/users/synadia/.nsc/nats/test/test.jwt","/usr/local/bin","/var/run/nat","/varz","0","0,","0.","0.0","0.0%","0.0.0.0","0.0.0.0:4222","0.0.0.0:4222:4222","0.0.0.0:5222","0.0.0.0:6222","0.0.0.0:7222:7222","0.0.0.0:7244:7244","0.0.0.0:7246:7246","0.0.0.0:7248:7248","0.0.0.0:8222","0.0.0.0:8222:8222","0.0.0.0:9222:9222","0.0001","0.3.1","0.5","0.5,","0.6.4","0.6.6","0.8%","0.8.0","0.9.4","0.9.6","0.99999,","0017lut0u3wj153yvp0uxr8yo","01o6zbz1uzftojgvwsts6yv2_849b9iuxsd","02","02t13:41:01.113179","02t14:02:46.402166","03t14:32:19.969037","03t14:34:02.066077","03t14:53:15.453824","03t14:53:15.45526","03t14:53:15.455266","03t14:53:15.455304","04","05","05:00\"","05:00\",","05:20:31.100032","07","07:00\"","07:00\",","08","08:45:59.836809","08:45:59.836889","08:45:59.837161","08:45:59.837168","08:45:59.837170","08:46:12.731278","08:46:12.731347","08:46:12.731488","08:46:12.731493","08:46:12.731495","08:46:13.467099","09:42:11.745919","09:42:11.746240","09:42:11.746249","09:42:11.746252","0\\r\\n\\r\\n","0x0d0a)","1","1\"];","1)","1)/2","1);","1,","1,000","1,004,615","1,076,537","1,119,430","1,119,444","1,119,449","1,119,461","1,119,466","1,119,653","1,2,3\"];","1,node","1.","1.0k","1.0m","1.1.0","1.1m","1.2,","1.2.0","1.2.0+)","1/2","10","10)","10):","10);","10*1000,","10,","10.","10.10.0.1","10.10.0.2","10.3m","10.4m","100","1000","1000);","1000,","100000","100000,","1000000","10000000","1014.6k","102.49","1024","1024).","1024);","1024*2;","1024*5000);","1024,","1048576,","105","107.170.221.32...","107.66","108","109","10:50:55.902474","10:50:55.902547","10:50:55.903669","10:50:55.903684","10:50:55.903696","10:50:55.903909","10:50:55.903914","10:50:55.903917","10:50:56.830669","10:50:56.830673","10:50:56.831079","10:50:56.831211","10:50:56.906103","10:50:56.906104","10:50:56.906404","10:50:56.906444","10:50:56.906647","10:50:56.906772","10mb).","10};","11.","11.1k","11.2k","11.4k","11.5k","11.6k","115","117.06","11874304,","11:21:19.801539","11:21:19.801621","11:21:19.801777","11:21:19.801782","11:21:19.801785","11:21:19.801787","11:22:20.216322","11:22:20.216539","11:22:20.367275","11:22:20.367291","11:22:41","11:22:41.845148","11:22:41.845241","11:22:41.845245","11:22:41.846367","11:22:41.846459","11:22:41.855291","11:22:41.855301","11:22:41.855303","11:22:41.855306","11:33:40","11:33:40.501305","11:33:40.501383","11:33:40.501404","11:33:40.501430","11:33:40.510273","11:33:40.510283","11:33:40.510285","11:33:40.510291","11\\r\\nhello","11\\r\\nknock","12","12.","1200","120000000000,","1200});","1200}.to_json)","122","124","127.0.0.1","127.0.0.1:4222","127.0.0.1:4244","127.0.0.1:4248","127.0.0.1:49805","127.0.0.1:50891","127.0.0.1:50892","127.0.0.1:51383","127.0.0.1:52679","127.0.0.1:52726","127.0.0.1:52727","127.0.0.1:56134","127.0.0.1:56144","127.0.0.1:56151","127.0.0.1:6248","127.0.0.1:7333","127.0.0.1:7444","127.0.1.1:56138","12922880,","12:51:52","12:51:53","12:51:54","12:51:55","13.","13:11:44.059012","13:11:44.059830","13:11:44.061544","13:11:44.061966","13:11:44.396819","13:11:44.396832","13:11:44.396837","13:11:44.396839","13:11:44.396842","13:11:44.396844","13:11:44.396855","13:11:44.396858","13:11:44.396859","13:13:10.048663","13:13:10.048843","13:13:10.048890","13:13:10.048968","13:13:10.048992","13:13:10.388282","13:13:10.388301","13:13:10.388309","13:13:10.388312","13:13:10.388316","13:13:10.388319","13:13:10.388333","13:13:10.388338","13:13:10.388341","13:26:32.037819","13:26:32.037912","13:26:32.037997","13:26:32.038020","14,","14.","14.57","14.58","14:20:13","14:37:49","14:45:18.001357","14:55:11.981434","14:55:11.981545","14:55:11.981560","14:55:11.981565","14:55:11.982492","14:59:42","14t12:55:25.564818051","14t13:29:26.426805508","14t13:30:59.349179963","15","15.","15.33","154","1556229062","15:01:13","15:14:47.339321","15:14:47.340787","15:14:47.340822","15:14:47.340825","15:14:59.970014","15:14:59.971150","15:14:59.971176","15:14:59.971179","15:14:59.971199","15:14:59.971551","15:14:59.971559","15:14:59.971602","15:14:59.971720","15:14:59.971731","15:14:59.971733","15:14:59.971739","15:18:22.301550","15:18:22.301762","15:18:22.301769","15:19:11.528185","15:19:11.529787","15:19:11.529829","15:19:11.529842","15:19:11.529872","15:19:11.530272","15:19:11.530281","15:19:11.530308","15:19:11.530384","15:19:11.530389","15:19:11.530408","15:19:11.530414","15:19:11.530469","15:19:11.530565","15:19:11.530570","15:19:11.530595","15:19:11.530644","15:19:11.530650","15:19:11.530659","15:19:11.530664","15:26:39","16","16.","16.43","1600000,","16:06:26","16:06:27","17.","17.08","172.17.0.52:6222","18","18.","180","185","187","18:34:19.605144","18:34:19.605191","18:34:19.605286","18:34:19.605312","18:34:19.608756","192.168.59.103","192.168.59.103:7244","1970)","19:48:55","19:58:01","1:","1:1","1:4222","1:4222\"])","1:4222,nats://nat","1:6222","1:6222,nats://nat","1:n","1\\r\\n","1h,","1h2m23s)","1h7m0s)","1});","1},","2","2\"","2\"];","2)","2,","2,009,230","2,node","2.","2.0","2.0,","2.0.","2.0.0","2.3.1","20","20)","20*1000,","20*2000,","20,","200000,","2015/06/23","2015/08/12","2015/08/19","2016/04/26","2016/10/31","2017/06/28","2017/09/28","2019","2019/05/07","2019/05/10","2019/05/13","2019/05/16","20:09:58.572939","20:09:58.573007","20:09:58.573071","20:09:58.573090","20:21:34","20:36:25","20s:","21","21:32:43","21:33:58","21:51:02","21:58:14","223,933","224,552","225,344","225,889","225,955","2253","226,395","22:04:29","22:15:58","22:33:13","22:43:46","24","24bc6bd33ea7:","25","25),","25,","25skxso8honyhuznu15e4989m","26,","260","2761","29","2:","2:4222,nats://nat","2:6222,nats://nat","2]","2d,","2d3d00b0941f:","2k","2k:","2m2s)","2nd","2s","2sxl8rw6vm99x622efbdmkb96","2}","2}\"];","3","3\"","3\"];","3,","3.","3.0m","3.42","3.43","3.45","3.7","3.7/install\\","30","30.66","302","30m51s)","31m42s)","32,","33,","3389.7","34.2k","36","37.9","38","39","39,","3:","3:4222","3:6222","3`;","3secret","4","4):","4,","4,775,709","4.","4.time","4000.","4005","4111","4222","4222).","4222,","4222.","4222:","4222:4222","4248","427","4333","4444","44:","44\\r\\n","45m40s)","47,","48","4:","5","5)","5*1024*1024)","5,","5,597,054","5,730,851","5.","5.9m","500","512","52","5222","53yi78q96t52qdyywlkiy","56","569,","571,","572,","574,","5:","5\\r\\n","5mb","5mb,","6","6,","6,716,465","6.","6.0m","6.3m","61572,","61577,","61791,","6222","6222.","6222:","6222:6222","6333.","643","64bit","64k.","651","65536","65536*1024","65536,","66","6779.4","68.3k","7,","7,055,644","7,671,570","7.","72.87","7222","7244","7246","7248","75.8","792","8","8,","8.","81","8222","8222,","8222.","8222:8222","83","8445952,","85.40","87.45","873.5k","8kp1imxhdoba","9","9.","90","90)","90.","905.1k","9090","9090.","9096","91","9222","937","955,150","955,153","955,154","955,156","955,157","955,279","976.56","98",":",":,",":6222","::1...","::1:58651","::1:58922","::1:58953","::1:59259","::1:59342","::1:59349","::1:59708","::1:59758","::1:59817","::1:63283",":=",":cert_chain_fil",":connect",":private_key_fil",":reconnect_attempts=>0},",":reconnect_attempts=>0}]",":server",":tl",":was_connected=>true,","=","==","===","=>",">",">.",">0",">0.",">1",">1,",">:","?","?decode=true.","[","[\"a\",","[\"nats://127.0.0.1:1222\",","[\"nats://127.0.0.1:4443\",","[\"nats://demo.nats.io:4222\"]","[\"nats://demo.nats.io:4222\"])","[\"nats://nat","[\"public.>\",","[\"req.a\",","[#1]","[#2]","[#35]","[#36]","[#3]","[#4]","[$sys.account.adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf.disconnect]:","[$sys.req.server.nc7akpqrc6cizgwrjotvfigvsl7vw7wxtqctujfng7htcmckqtge5pul.statsz]","[$sys.req.server.ping]","[$sys.server.account.adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf.conns]:","[17010]","[18085]","[18122]","[18541]","[1]","[2016","[21417]","[22242]","[29670]","[29785]","[2]","[3]","[41634]","[4528]","[4]","[54083]","[5]","[75653]","[75665]","[75764]","[85803]","[>]","[]","[]byte","[]byte(\"al","[]byte(\"hello","[]byte(formatted))","[]byte(input))","[]byte(time.now().string())","[]nats.option{","[]string{\"nats://localhost:1222\",","[_inbox.dqd44ugvt0o4ur3pwiood1.wqobevoq]","[_inbox.g5mbsf0k7l7nb4ewha7gtt.omklmvnm]","[_inbox.n3iiqwbiaqfpoincbpbrum.zjbntkb3]","[_inbox.v6kax0v1bu87k49hbg3dgn.stigjf0d]","[a.b.c.a]","[a.b.c.d.a.b.c.d]:","[a.b.c.d]","[bar]","[bar]:","[bytes_to]:","[cacert],","[clientcert]","[clientkey],","[connect","[dbg]","[end","[foo]","[foo]:","[googl","[hello]","[hello],","[hello]:","[help.>]","[help.aal5q2b3sm]:","[help]","[help]:","[here)(https://github.com/nat","[inf]","[label=\"ack\"];","[label=\"echo'd","[label=\"msg","[label=\"msg\"];","[label=\"msg1\",","[label=\"msg1\"];","[label=\"ping\"];","[label=\"pong\"];","[label=\"updates.*\"];","[label=\"updates.1\"];","[label=\"updates.2\"];","[label=\"updates.3\"];","[max_msgs]","[max_msgs]\\r\\n","[msg.test]","[msg.test]:","[msgs=100000,","[msgs=10000000,","[nat","[nats://localhost:4111]","[not","[penwidth=2,","[penwidth=2];","[pong]","[queue","[repli","[rurl","[shape=\"box\",","[shape=\"record\",","[shape=box,","[shape=circle,","[splines=ortho,","[style=\"invis\",","[style=\"invis\"];","[style=dash","[swarm]","[trc]","[{:uri=>#,","\\","\\$sys.req.server.nc7akpqrc6cizgwrjotvfigvsl7vw7wxtqctujfng7htcmckqtge5pul.statsz","\\$sys.req.server.p","\\r\\n","\\r\\n,","\\r\\n[payload]\\r\\n","]","])","],","]}","_","_,","_inbox.","_inbox..","_inbox.4c35d18701979f8c8ed7e5f6ea","_inbox.>","_inbox.a96f3f6853616154d23d1b5072","_inbox.b8d8c01753d78e562e4dc561f1","_stan.discover.myclust","_sys.,","`cat","`max`","`nats://127.0.0.1:${port}`,","`nats://:mytoken!@127.0.0.1:${port}`;","`nats://myname:password@127.0.0.1:${port}`;","`nats://mytoken!@127.0.0.1:${port}`;","`nca'","`nkey_seed`","`no_advertis","`seq","`ssl.create_default_context()`","a,","a.","a.b.c.>","a.b.c.>,","a.b.c.a","a.b.c.d","a.conf","a.conf:/tmp/cluster.conf","a:","a:\",","aal5q2b3smso","aal5q2b3smso5as3apjfunaikuceqjpaq76xebtvocqcxxgkp3ymggn4","abbrevi","abc","abc.>","abc.>.","abhyl27uahhq","abhyl27uahhq.","abhyl27uahhqxa5hlh2ywhfqbip4ympc7rnz4psframjhsszuuixf2rv","abil","about,","about.","abov","above),","above,","above.","absenc","absent)","absolut","abstract","abuse.","abuses.","ac7po3mrev26","ac7po3mrev26u3lfzfp5bn3hai32x3pklbrvmpaetlehwpqeug7ejy4h","accept","accept.","accepted.","accepted:","access","accommod","accommodate.","accordingly:","account","account'","account)","account).","account,","account.","account:","account;","accountb","accounts'","accounts,","accounts.","accounts;","accountโ€™","accur","achieve.","ack","ack.","ackhandl","ackhandler)","ackinbox","ackinbox:","acknowledg","acknowledged)","acknowledged.","acknowledgement.","acknowledgements.","acks.","ackwaitinsec","ackwaitinsecs:","acsu3q6ltlbvlgaquonagxjhvnwgskkaua7iy5tb4z7pleksr5o6jtgr","acsu3q6ltlbvlgaquonagxjhvnwgskkaua7iy5tb4z7pleksr5o6jtgr:","act","action","action.","activ","active,","active.","active\\nsubscriber\"];","actual","ad","ad57mfnbiko3","ad7hdy5as3lt","add","add/remov","addit","addition,","addr","address","address)","address,","address.","address:127.0.0.1,","addresses,","adjac","adjusted.","admin","admin,","administr","administration.","adopt","advanc","advantag","advertis","advertised.","adwjvsusevc2ghl5gratn2loeoqoy2e6z2vxnu3jeik6bdgpwniw3axf","affect","affirm","ag","again","again!\"","again,","again.","against","aggreg","aggregate,","ago","ahead","algorithm","algorithm,","algorithm.","alic","align","aliv","alive.","all,","alloc","allow","allow_reconnect=false,","allowed,","allowed.","alone.","along","alphanumer","alreadi","already.","also,","alter","altern","alternatively,","although","altogeth","altogether.","alway","amd64.zip","amd64/","amd64/licens","amd64/nat","amd64/readme.md","amd64:","amount","analog","ancillari","and/or","andfoo..bar","anonym","anoth","another.","ansi","answer","anti","anyon","anyth","anything.","anytim","anytime,","apach","apart","api","api,","api.","apis,","api}\"];","app","appar","appear","appli","applic","application,","application.","application:nat","applications.","applied.","applied:","approach","approaches;","appropi","architect","architecture,","archive:","are.","are:","aren't","arenโ€™t","args)","argument","arguments.","aris","arm)","armor","around","around:","array","array.","arrays,","arrays.","arriv","arrives.","arrowhead=\"none\"];","article.","artifacts.","as:","ascend","ascii","ask","aspect","ass:","assert","assign","associ","assum","asterisk","async","async.","asynchron","asynchronously.","asyncio","asyncio.future()","asyncio.gather(*requests)","asyncio.queue()","asyncio.sleep(0)","asyncio.sleep(1)","asyncio.sleep(1,","asyncio.timeouterror:","asyncio.wait_for(future,","at:","atop","attach","attack","attack.","attacks.","attempt","attempt,","attempt.","attempts,","attempts.","attribut","audit","augment","auth","auth.conf:","auth_requir","auth_required:","auth_token:","authent","authenticate:","authentication,","authentication.","authentication/author","authentication:","authhandler(){","authhandler(nats.credentials(\"path_to_creds_file\")).","authhandler(new","author","authorization)","authorization,","authorization.","authorization:","authorized,","auto","autodiscoveri","automat","automatically.","avail","availability,","availability.","available)","available,","available.","available:","avg","avoid","await","awar","aware,","aware.","away","awesom","a}","b","b'!!!!!')","b'')","b'',","b'...')","b'a')","b'all","b'b')","b'c')","b'd')","b'hello","b'hello')","b'help!',","b'i","b'response')","b'what","b'world')","b,","b.","b.conf","b.conf:/tmp/cluster.conf","b:","b:\",","back","bad","bad!","balanc","band","bandwidth,","bar","bar,","bar:","base","based,","basi","basic","basis.","bcrypt","bcrypt.","be","be:","bear","becam","becom","befor","before,","before.","beforehand","begin","behalf","behav","behavior","behavior.","behaviors.","behaviour","behind","behind.","believ","belong","below","below),","below).","below.","below:","bench","bench.go","benchmark","benefit","besid","best","better","better,","between","beyond","big","big,","bigger","binari","binary,","bind","binpath=","bit","bit).","bits)","blindli","block","block.","block:","bob","bodi","body.","book","boolean.","both","both.","bound","boundari","braces:","brackets:","branch","break","break;","brew","bridg","briefli","bring","brittle.","broker,","brows","browser.","brunt","buf","buf);","buf.fill(\"al","buffer","buffer,","buffer.","buffer.allocunsafe(12);","bufferedinputstream","bufferedinputstream(new","buffers,","buffers.","buffers/).","buffers]","build","build();","builder","builder.create();","built","bundl","burst","bursti","busi","but,","by:","by]","byte","byte[]","bytes\"","bytes\",","bytes,","bytes.","bytes/sec:","bytes:","bytes_from","bytes_from,","bytes_to","bytes_to,","bytes_to.","b},","c","c#","c,","c.","c.conf","c.conf:/tmp/cluster.conf","c.connectedurl())","c;","ca","ca,","ca.pem","ca:","ca_fil","ca_file:","cacert","cach","cached/pend","caches,","caching.","cal","calcul","calendar","calendar.getinstance();","call","call.","callback","callback,","callback.","callbacks,","can't","can:","cancel","cancel()","cancel.","capabilities,","capabl","capac","captur","care","care.","carefulli","carefully.","carriag","carv","case","case)","case,","case.","cases,","cases.","cat","catch","caus","cb(msg):","cb=cb)","cb=cb,","cb=handler)","cb=message_handler)","cb=sub)","cd","cd.connecttimeout)","cdt","ce.removed);","central","central,","cert","cert.pem","cert.pem\"","cert.pem',","cert:","cert_fil","cert_file:","certain","certainli","certif","certifi","certificate.","certificate:","certificates,","certificates.","certificates.command","chain","chain.","challeng","challenge.","chang","change,","change.","changed)","changed.","changed\\n',","changes,","changes.","channel","channel.","channels:","char[]","charact","chatti","check","checked,","checking,","child","choco","chocolatey:","choos","choose.","chores.","chose","chosen","chunk","cid","cid,","cid:","cid:1","cid:7","cipher","cipher_suit","city,","claim","claim.","claims,","class","clean","clear","click","client","client\"];","client'","client(s)","client)","client,","client.","client/serv","client:","client;","client_advertis","client_id:","clientcert","clientid,","clientid:","clientid=[17010],","clientkey","clients,","clients.","clients..","clients:","clientโ€™","clock","clone","close","close,","closed\"","closed\")","closed');","closed,","closed.","closed.\"","closed.\")","closed...\"","closed?\",","closed_cb","closed_cb():","closedhandler(cb","closely.","closerequest","closerequests:","closeresp","closerespons","closing,","closing.","cloud","clue).","cluster","cluster'","cluster)","cluster,","cluster.","cluster/supercluster.","cluster:","cluster;","cluster]","cluster_1","cluster_2","cluster_advertis","cluster_id","cluster_nats_streaming_serv","cluster_node_id","cluster_p","clusterid:","clustering).","clustering,","clustering.","clustering:","clusters,","clusters.","cn=example.com","cncf","code","code,","collect","collected.","colon:","color","color=r","column","combin","come","comma","command","command:","commands,","commands.","comment","commerci","commit","common","commonli","commun","communication.","community,","compani","complet","completablefutur","complete.","completeness,","complex","complexity.","complic","compon","compress","compris","compromis","compromise.","comput","concept","concern","condition.","conf","config","config.","config:","configu","configur","configurable.","configuration).","configuration,","configuration.","configuration:","configurations,","configurations.","configured,","configured.","confirm","confus","conjunct","conn","conn,","connect","connect(\"nats://demo.nats.io:4222\");","connect()","connect();","connect({","connect({url:","connect,","connect.","connect/disconnect","connect:","connect_retri","connect_url","connectable,","connected');","connected,","connected.","connected:","connected?\",","connected?:","connecting/authenticating.","connecting/reconnect","connection\")","connection'","connection'.","connection':","connection,","connection.","connection...","connection:","connectionevent(connect","connectionlisten","connectionlistener((conn,","connectionlistener(new","connections,","connections.","connections:","connectiontimeout(duration.ofseconds(10)).","connectrequest","connectrespons","connectresponse,","connects)","connects,","connects/disconnect","connecttimeout","connecttimeout:","connecttimewait","connecttimewait:","connecttl","connecttlsurl","connhandler)","connnects)","connz,","consid","consider","consist","console.log('error',","console.log('reconnect","console.log('reconnected');","console.log(data);","console.log(msg.subject,","const","constant","constraint","construct","consum","consume,","consumer\"","consumer':","consumer)","consumer,","consumer.","consumer.getdroppedcount());","consumer?","consumers.","consumers:","consumers?","contain","container","container:","containers,","content","content,","content.","content:","contents:","context","context,","context.context","context.withcancel(context.background())","context.withtimeout(cd.ctx,","continu","continuing.","contributor","control","control)","control,","control.","controlled.","controls,","conveni","convent","conversely,","convert","copi","copy/past","core","core\"","coroutine.","correct","correctli","correctly,","correl","correspond","cors,","cors.","count","count.","countdownlatch","countdownlatch(1);","countdownlatch(10);","countdownlatch(2);","countdownlatch(4);","counter","coupl","cours","cover","covers,","covers.","cp","cpu:","cr","crashes,","crc32","crc32:","creat","create,","created.","created:","createinbox();","createsslcontext()","createtestkeymanagers()","createtesttrustmanagers()","createtesttrustmanagers(),","creating:","creation","creation.","cred","credenti","credentials,","credentials.","credentials:","criteria","crlf","cross","crucial","cryptograph","csv","csvfile]","ctrl+c","ctx","ctx,","ctx.err()","ctx.init(createtestkeymanagers(),","ctx:","ctx;","curl","current","currentpli","cursor","curv","curve_prefer","custom","customdial","customize.","cut","cypher","d","d,","d.drain(duration.ofseconds(10));","d.setpendinglimits(1_000,","d.subscribe(\"time.*.east\");","d.subscribe(\"time.>\");","d.subscribe(\"updates\");","d.subscribe(\"updates\",","d.unsubscribe(\"updates\");","d.unsubscribe(\"updates\",","daemon.","dag0htxl4rgg7dxdajwbc8","daili","danc","danger","darwin","dashboard","data","data,","data.","data:","data:\"world\"","data=data))","databases.","date","date().tolocaletimestring(\"en","date().tolocaletimestring());","date,","date.now()","date.now();","date/tim","date/time,","de","deadlin","deadline,","deadline.","deal","debian,","debug","debug:","decentr","decid","declar","decod","decoded,","decoded.","decompress","decreas","decrement","dedic","deep","def","default","default,","default.","default:","default_permiss","defens","defer","defin","defined,","definit","definition:","degre","delay_in_sec","delay_in_secs]","deleg","delet","delimit","delimiter.","delimiters:","deliv","deliverallavail","delivered.","deliveri","delivery).","delivery.","delsub","delta","demo","demo.","demo.nats.io","demo.nats.io.","demo.nats.io:4222","demo.nats.io:4222.","demonstr","deni","denial","deny:","depend","dependent,","dependent.","deploy","deregistr","derek","describ","describing:","descript","design","design,","design.","designed,","desir","desirable.","destin","detail","details.","detect","detected.\");","determin","dev","develop","deviation.","devic","devis","dial","dial(network,","dialcontext","dialer","didn't","diesconnected,","differ","differences.","differently.","digest:","digit","digraph","dir","dir.","dir=\"both\"];","dir=\"forward\"];","direct","directions.","directive.","directli","directly,","directly.","directori","directory,","directory.","directory;","disabl","disconnect","disconnect,","disconnect.","disconnect/unsubscribe.","disconnect:","disconnected!","disconnected!\")","disconnected');","disconnected,","disconnected.","disconnected:","disconnected_cb","disconnected_cb():","disconnected_cb=disconnected_cb,","disconnecthandler(cb","disconnects)","discov","discovered.","discoveredservershandler(cb","discoveri","discovery!","discuss","discussed,","dispatch","display","distinguish","distribut","dmz","dmzs,","dns:localhost,","do","do,","do:","doc","doc,","docker","docker.","docker:","document","document,","documentation.","documented.","doesn't","doesnโ€™t","doing:","domain.","domains,","don't","done","done.add(1)","dont_randomize=true,","dont_randomize_servers:","donโ€™t","dosomething();","dot","down","down,","down.","download","downloads.","downtim","doxygen","drain","drain,","drain_sub]","drained.get();","draining\")","draining.","draintimeout()","drive","driver","drop","dropped)","dropped,","dropped.","duck","due","duplic","durabl","durable\"))","durable/queu","durable=[]","durablename:","durat","duration,","duration.ofseconds(1));","dure","dv","dv,","dynam","e","e)","e.g.","e.g.:","e.printstacktrace();","each","earli","earlier).","earlier.","earliest","early.","eas","easi","easier","easier,","easiest","easili","eastern","easy:","ec,","ec.close()","ec.flush()","ec.publish(\"updates\",","ec.subscribe(\"updates\",","echo","echo'd","echo,","echo:","ed25519","ed25519.","edg","edit","edit,","effect","effect.","effectively,","efficient.","electron","element","elig","elimin","em.add_periodic_timer(0.1)","em.add_periodic_timer(1)","em.add_timer(2)","em.add_timer(5)","em.cancel_timer(timer)","em.run","em.stop","email","email:derek@nats.io","emb","embed","embeds,","emit","empti","empty/omit","enabl","enabled)","enabled,","enabled.","encapsul","enclos","encod","encoding.","encoding:","encount","encountered,","encourag","encrypt","end","end'","end,","end.resum","endpoint","endpoint,","endpoint.","endpoint:","endpoints,","endpoints.","endscript","enforc","enhanc","enlighten","enough","enough,","enough:","ensur","enter","enterpris","entir","entiti","entities,","entities:","entity,","entity.","entri","entries,","entries:","enumer","env","environ","environment","environment.","environment:","environments,","ephemer","equal","equival","equivalent.","err","err)","err);","err.","errch","errhandler)","error","error':","error)","error){","error,","error.","error:","error:',","error_cb","error_cb(e):","error_cb=error_cb,","errorhandler(cb","errorlisten","errorlistener(new","erroroccurred(connect","errors,","errors.","errtimeout","escap","especi","essence,","essenti","essentially:","establish","etc.","etc...","even","evenli","event","event)","event,","events,","events.","events.disconnected)","events.discovered_servers)","events.reconnected)","events:","eventu","everyth","evict","evolv","ex)","exactli","examin","exampl","example(loop):","example),","example).","example,","example:","examples/stan","examples/tools/nat","exce","exceed","exceeded':","exceeded,","exceeded.","except","exception:","exceptionoccurred(connect","exchang","exchange,","excit","execut","exercis","exercise.","exist","exist.","exit","exit.","exlus","exp)","expand","expands,","expect","expected,","expected.","expected:","experi","experienc","experience,","experiment.","expir","expire,","expired.","expires,","expires.","explain","explanatory.","explicetli","explicit","explicit,","explicitli","explor","explos","export","export,","export.","export:","exported.","exports,","expos","express","extend","extends,","extens","extensions:","extern","extra","extract","extrem","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijjwtravvdmtkxpve81tjvvrexprkvcq09nsei2tutrtus0wkvmqtjcu1bltvhtrufswe9biiwiawf0ijoxntu2ntuwmdczlcjpc3mioijbqzdqtznnukvwmjzvm0xgwkzqnujom0hbstmywdnqs0xculznueffvexfsfdquuvvrzdfslk0scisim5hbwuioijozwxwlkfbtdvrmkizu00ilcjzdwiioijbquw1utjcm1nnu081qvmzqvbkrlvoqullvunfuupqqve3nlhfqlrwt0nrq1hyr0tqm1lnr0doncisinr5cguioijhy3rpdmf0aw9uiiwibmf0cyi6eyjzdwjqzwn0ijoiagvscc5bquw1utjcm1nniiwidhlwzsi6innlcnzpy2uifx0.vfyhpa0e67rfr","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijpmk5bmknaq1zinkqytevcqkndvufhtezawfjpttdktes1q1zxrdzmvlppvu9tuexds0dbiiwiawf0ijoxntu2ntczntyzlcjpc3mioijpqks3m09muu9kv05zve4ytzq2svprtjrxtvndn0hwvk5bm1k2vfdqv0tdrlhjv1mzwextqvvjuyisim5hbwuioijpmiisinn1yii6ik9cszczt0xrt0pxtllutjjpndzjwlfonfdnu0m3sfzwtkezwtzuv1bxs0ngwelxuznytfnbvultiiwidhlwzsi6im9wzxjhdg9yiiwibmf0cyi6eyjzawduaw5nx2tlexmiolsit0rnwunjnvrtwlk2tuzmt0jcutjstljcukfyuktks0fdnvvbq1jdnkg2q0pyq0xsmlnuvedbqveixx19.","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijprfhjsvi2wlg1q1azmlfjtfczwfbenettsdyzufnnsezhukpat05dr1rlvvbislrlq0jbiiwiawf0ijoxntu2nju1njk0lcjpc3mioijprfdasjjlqvbgnzzxt1dnuenkrjzcwtrrsvbmvfvjwtrksujmvtrlm1lerznhselxqlzxqkhvwiisim5hbwuioijbiiwic3viijoiquntvtnrnkxutejwtedbuvvptkfhwepivk5xr1nls0fvqtdjwtvuqjran1bmruttujvpnkpur1iilcj0exblijoiywnjb3vudcisim5hdhmionsibgltaxrzijp7inn1ynmioi0xlcjjb25uijotmswibgvhzii6ltesimltcg9ydhmioi0xlcjlehbvcnrzijotmswizgf0ysi6ltesinbhewxvywqioi0xlcj3awxky2fyzhmionrydwv9fx0._ww5c1trich8a4jhybxezzp8rj17pins8qlzz","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijuvlnntettwkjbn01vwdnyquxnuvqztjrisuw1ukzgqu9ynutaufheu0oywlaznkvmnvjbiiwiawf0ijoxntu4mdq1ntyylcjpc3mioijbqlztqk0zvtq1redzrvvfq0tyuvm3qkvosfdhn0tguvveulrfsefkqvnpulbwv0janehpsutdscisim5hbwuioijvbwvnysisinn1yii6ilveweiyvk1mwfbbu0fkn1pevetztle3uu9drldtr0i0rk9nwvfrmjviuvdtquy3wlfkrujtuvnxiiwidhlwzsi6invzzxiilcjuyxrzijp7inb1yii6e30sinn1yii6e319fq.6tq2ilcdb6m2zdijuj_d_oepgxfyn3ap2dem3ipcu5ahrwrnvnejrywrpgi_yuvwko1uod5s8bxlmwypwvgfaa","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijvsk9rtfvstuvftvzxqvpvt0e2vle1uvq0uediv081wktdwlblvfbjqvplsldastjgnvpriiwiawf0ijoxntu2odm1mzu4lcjpc3mioijbrdu3tuzoqklltznbrfu2vktmrkvyqlbvqjdfwlplu0tvuddztznwvufjtulbwupvne1em0nduiisim5hbwuioijszwfmiiwic3viijoivunemlpsvus1ue8ymk02mlnwvtzitzzjs01bverduljyvvvgwdrru1vtwfdrsdrhu1y3rddxvzmilcj0exblijoidxnlciisim5hdhmionsichviijp7imfsbg93ijpbimzvbyjdfswic3viijp7imfsbg93ijpbimjhcijdfx19.ieqsyltaismqmh3ih_0g8llxoxe0giclpxtm3b_ys_xwl9ttpiw","eyj0exaioijqd3qilcjhbgcioijlzdi1nte5in0.eyjqdgkioijwtlqzwtmystvgtlrfselwtdzqsu5fsk5owjzamkjhr0vkmlfxtkezvfbrnee0s0jsr0hriiwiawf0ijoxntu2mji5ndk0lcjpc3mioijbqzdqtznnukvwmjzvm0xgwkzqnujom0hbstmywdnqs0xculznueffvexfsfdquuvvrzdfslk0scisim5hbwuioijhlmiuyy5kiiwic3viijoiqufmnveyqjnttvnpnuftm0fqskzvtkfjs1vdrvfkuefrnzzyrujuvk9duunywedludnztudhtjqilcj0exblijoiywn0axzhdglvbiisim5hdhmionsic3viamvjdci6imeuyi5jlmqilcj0exblijoic3ryzwftin19.ea0w","f","f*o.b*r","f.resum","face","fact","fact,","factori","factory.getkeymanagers();","factory.gettrustmanagers();","factory.init(store);","factory.init(store,","fail","fail.","failed(err);","failov","fails.","failur","failure.","failures.","fairli","fall","fals","false)","false,","familiar","fan","fanci","fast","faster","fastest","fault","favor","favorit","featur","feature,","feature.","featured,","features,","feed","feed,","feel","felt","few","fewer","fiber.curr","fiber.new","fiber.yield","field","field.","fields:","figur","file","file'","file,","file.","file:","fileinputstream(path));","filepath","files,","files.","filter","final","finally,","find","finger","finish","fire","first","first,","first:","five","fix","flag","flag,","flag.","flag:","flags,","flags]\"","flat","flavor","flexibl","flight","flight)","flightโ€","float","flow","flush","fmt.printf(\"couldn't","fmt.printf(\"error:","fmt.printf(\"fal","folder","follow","followed,","following,","following:","follows:","foo","foo*.bar,","foo,","foo.","foo.*","foo.*.quux","foo.>","foo.bar","foo.bar,","foo.bar.baz","foo.bar.baz.","foo.bar.baz.1,","foo.bar.quux,","foo.bar:","foo:","foo>","for.","for:","forc","foreign","foresight","forethought","forever,","forget","forget.","forgiving,","form","form:","formal","format","format,","format.","formation.","formatted.getbytes(standardcharsets.utf_8));","forms:","formul","formula","forth...","forward","forward.","forwarded.","found","found,","found.","foundat","four","fraction","fractional).","free","fri","friendli","from',","from:","front","front.door","fs.readfilesync(cacertpath);","fs.readfilesync(clientcertpath);","fs.readfilesync(clientkeypath);","full","fulli","func","func(","func()","func(_","func(ackednuid","func(m","func(nc","function","function(data)","function.","function/opt","function/service,","functionality.","fundament","further","futur","future,","future.","future.set_result(msg)","fuzz.","g","g1","gain","gateway","gateway.","gateway://gwu:gwp@localhost:7222\"},","gateway://gwu:gwp@localhost:7333\"},","gateway://gwu:gwp@localhost:7444\"},","gateways)","gateways,","gateways.","gateways:","gather","gather,","gather.","gave","gem","gen","gener","general,","generally,","geograph","get","get.","getid()","getjwt()","getstatustxt","getstatustxt(nc))","gid:1","gid:2","gid:3","gid:4","git","git@github.com:nat","github","github.","github.com/nat","give","given","global","gnatsd","gnatsd;","go","go.","go:","gobin","godoc","goe","going.","golang","golang:latest","gone,","good","google'","gossip","gossip.","gossiping;","gracefulli","grant","graph","graph)","graph,","great","greater","greatli","greet","group","group,","group.","group:","group]","groups.","grow","gson","gson();","gson.fromjson(json,","gson.tojson(stk);","gsonbuild","gsonbuilder();","guarante","guard","guid","guid:","guidance,","guidance.","guide,","gwp","gwu","h","h,","half","halt","hammer","hammer.","hand","hand,","hand.","handi","handl","handle,","handler","handler(msg):","handler,","handlers.","handling,","handshak","handshake,","handshake.","handywork:","happen","happen.","happens.","hash","hash,","hash.","hash:","hasn't","have","have.","head","health","health/load","healthy,","healthy.","heartbeat","heartbeatinbox:","heartbeats,","heartbeats.","heath","heavili","height=0,","hello","hello.","help","help!!!),","help\"","help'","help')","help.>","help.aal5q2b3sm","help.aal5q2b3sm.","help_tl","helper","helpers,","herd","herd\".","here","here'","here,","here.","here:","hi","hide","hierarch","hierarchi","hierarchy.","high","higher","highli","histor","histori","hit","hold","homebrew:","honor","honored.","hook","hop.","horizont","host","host,","host.","host/port","host:","host:port","hostnam","hostname/ip.","hostport","however,","http","http(s):///jwt/v1/accounts/.","http/","http:","http://localhost:8222","http://localhost:8222/","http://localhost:8222/connz","http://localhost:8222/connz?callback=cb","http://localhost:8222/connz?limit=1&offset=1&subs=1.","http://localhost:8222/connz?limit=1&offset=1.","http://localhost:8222/routez","http://localhost:8222/routez?subs=1","http://localhost:8222/subz","http://localhost:8222/varz","http://localhost:9090/jwt/v1/accounts/ac7po3mrev26u3lfzfp5bn3hai32x3pklbrvmpaetlehwpqeug7ejy4h\\?decode=tru","http_port","http_port).","https://github.com/nat","https://raw.githubusercontent.com/nat","https_port","https_port).","hub","hub.","human","i,","i.","i.e.","iat","id","id,","id.","idea","ideal","idempotent.","ident","identical.","identifi","identities,","identity,","identity.","idl","ieee","if(err)","if(msg","if(nc.closed)","if(nc.isclosed())","if(reply)","ignor","ignored,","ignored.","imag","image,","image.","image:","immedi","immediate.","immun","immut","imped","implement","implementation.","implementation:","implementations,","implementations.","impli","implicit","import","import,","import.","important,","important.","importantli","importers.","importing,","improv","in',","in,","in.close();","in:","inbound","inbox","inbox)","inbox);","inbox,","inbox.","inbox.22","inbox.22:","inbox.34","inbox:","incantation,","incld","inclined,","includ","include:","including:","incom","incoming/pend","increas","increment","inde","independ","independently.","index","indic","individu","individually,","industri","ineffici","inexpens","inflating:","inflight","influenti","info","info.","inform","information,","information.","information:","infrastructur","ingest","inherit","initi","initially,","inlin","innov","insecur","insensitive,","insid","insight","inspect","instal","installation.","installations,","installations.","installed,","installed.","installed:","instanc","instance,","instant","instanti","instead","instead,","instead:","instruct","instructions.","insufficient,","insufficient.","insur","int","int.","integ","integr","intend","intended:","intent","intentions,","interact","interaction.","interdependencies,","interest","interest,","interest.","interested.","interesting,","interesting.","interfac","interfaces).","interfaces.","interfer","intern","internally.","interoper","interoperability.","interpret","interst","interv","interval,","interval.","introduc","introduct","introspect","invalid","invocation,","invok","invoked.","involv","io/go","io/nat","io/nats/exampl","io/nk","io/nkeys/nk","io/nod","io/nsc/master/install.pi","io/rubi","iot","ip","ip:","ip:port","irepas80tbwjbyulx1ulap","is',","is,","is:","isn't","isnโ€™t","isol","isolation,","isolation.","iss","issu","issued.","issuer","issuer.","issues.","it'","it,","it.","it:","itself","itself,","itself.","itself:","java","java,","javadoc","javadoc.","javascript","job","join","joined.","jqueri","json","json,","json.","json.dumps({\"symbol\":","json.getbytes(standardcharsets.utf_8));","json.loads(msg.data.decode())","json.parse(msg)","json:","jsonp","jti","jump","jwt","jwt,","jwt.","jwts,","jwts.","k","k).","keen","keep","key","key)","key,","key.","key.pem","key.pem\"","key.pem')","key:","key_fil","key_file:","key_password","key_password.tochararray());","keyboards,","keyfile='cli","keymanager[]","keymanagerfactori","keymanagerfactory.getinstance(algorithm);","keypair:","keys)","keys,","keys.","keys;","keystor","keystore.getinstance(\"jks\");","keystore_path","kill","kind","knew","knock\"","knock\\r\\n","know","know:","knowledg","knowledge,","knowledge.","known","kubernet","l","l,","label","label=\"\",","label=\"gnatsd\"];","label=\"nat","label=\"nats\",","label=\"non","label=\"pub","label=\"pub\\ncom.msg.one\"];","label=\"publisher\"];","label=\"queue\"];","label=\"reply\"];","label=\"storage\"];","label=\"stream","label=\"sub","label=\"sub\\ncom.msg.*\"];","label=\"sub\\ncom.msg.one\"];","label=\"sub\\ncom.msg.two\"];","label=\"subject\"];","label=\"subscriber\"];","label=\"{","label=\"{appl","labelloc=b;","lame","lang","lang,","lang:","languag","language.","languages,","languages.","larg","large,","larger","larger,","largest","last","lastly,","lastreceived:","latch","latch.await();","latch.countdown();","latenc","later","later)","latest","latest,","latest:","latter","layer","lazi","ldm","leaf","leaf,","leaf.conf","leaf:","leaf://localhost:4000,","leafnod","leafnode).","leafnode.","learn","leav","left","legaci","len(msgs)","length","length)","less","let","let'","letter","letโ€™","level","level.","level:","leverag","lf","librari","libraries,","libraries.","library'","library,","library.","library/nat","license.","lifecycl","lightweight","lightweight,","like:","limit","limit,","limit.","limitation,","limits,","limits.","limits:","line","line,","line.","line:","lines).","lines.","link","linux","linux,","list","list,","list.","listed,","listen","listen:","listener.","listeners.","listenfornewserv","listening,","littl","live","live.","lively,","load","load:","loadkeystore(keystore_path);","loadkeystore(str","loadkeystore(truststore_path);","local","localhost","localhost.","localhost:4111","localhost:4222","localhost:4244","localhost:4248","localhost:4333","localhost:4444","localhost:5248","localhost:6248","localhost:6333:","localhost:7222","locally.","locat","locations.","log","log,","log.fatal(err)","log.fatalf(\"un","log.printf(\"%s:","log.printf(\"discov","log.printf(\"error:","log.printf(\"known","log.printf(\"maximum","log.printf(\"reply:","log.printf(\"slow","log.printf(\"stock:","log.printf(\"th","log.println(\"attempt","log.println(\"disconnect","log.println(\"nat","log.println(\"reconnect","log_file:","logged.","logging:","logic","logic.","logror","logrot","logrotate;","logs,","logs:","logtim","logtime:","long","long,","long.","long...","longer","look","loop","loop=loop)","lose","lost","lost.","lot","low","low)","low,","m","m,","m.ack()","m.data)","m.subject,","m2qdayqz_zmr2glmvyk4ej6j8rq1uzdgag","mac","mac,","machin","maco","macos,","made","made.","magic","main","main()","main(string[]","main:6222","maintain","major","major,","make","make(chan","malform","manag","manage,","managed.","manager.","managers.","mani","manifest","manner.","manual","many.","map","map,","map.","mark","marshal","master","master,","match","match),","match.","matching,","matching/limit","mathemat","matter","max","max:","max_connect","max_control_lin","max_msgs:","max_outstanding_pings=5,","max_payload","max_payload:","max_reconnect_attempts:","max_reconnect_attempts=10,","max_subscript","maxcontrolline(2","maximum","maxinflight","maxinflight:","maxpingout:","maxpingsout(5).","maxpubacksinflight","maxreconnectattempts:","maxreconnects(10).","mb","mb)","mb/sec","mcxfxyipek0mugaljj7t5jxehtar7mny5iycj7nhldohu5ifog2llfw_hptcfa4qa989vqecsitubucaa","mean","meaning","measur","mechan","mechanisms,","mechanisms:","meltdown.","mem","member","member,","members.","memori","memory:","mention","mere","mesh","mesh.","messag","message\"","message'","message',","message)","message),","message,","message.","message/ev","message:","message:',","message_handler(msg):","message_size]","messages)","messages,","messages.","messages...\")","messages:","messages\\n\",","messageโ€™","messaging.","messaging:","meter","meter,","method","method.","microservic","might:","million","millisecond","mimic","min","min/max/avg","mind","mind:","minim","minimal.","minimum","minrespons","minut","minutes,","minutes.","miscount","mismatch.","miss","missing,","missing.","missingok","mitig","mkdir","mkpasswd","mkpasswd.go","mkpasswd:","mobil","mode","mode)","mode,","mode.","model","model.","modern","modifi","modified,","module\"];","monitor","monitor:","monitor]","monitoring,","monitoring.","more","more,","moreover,","most,","mostli","motion.","motions.","move","mp","mp)","ms","ms,","msg","msg\",","msg)","msg);","msg,","msg.*","msg.data","msg.data)","msg.data);","msg.data.decode()","msg.getsubject();","msg.repli","msg.subject","msg.test","msg.test.new","msg.ticker","msg_a","msg_a)","msg_b","msg_b)","msgafterdrain","msgproto","msgs)","msgs.append(msg)","msgs/sec","msgs/sec:","msgs:","msgs_from","msgs_from,","msgs_to","msgs_to,","msgsize=16,","much","much,","multi","multipl","mutual","mycluster,","myconnectionlisten","myconnectionlistener()).","myerrorlisten","myerrorlistener()).","mynam","mytoken","n","n(n","n)","n:m","name","name\"","name,","name.","name:","name=nat","names,","names.","names:","namespac","namespace,","nanosecond","nanoseconds.","nat","native,","nats!\"","nats!'","nats!\\r\\n","nats\"","nats\")","nats'","nats()","nats,","nats.","nats...\"","nats...\")","nats.1","nats.2","nats.3","nats.aio.cli","nats.aio.error","nats.aio.errors.errslowconsumer:","nats.clientcert(\"resources/certs/cert.pem\",","nats.closed:","nats.closedhandler(func(c","nats.connect","nats.connect(\"127.0.0.1:4222\",","nats.connect(\"demo.nats.io\")","nats.connect(\"demo.nats.io\",","nats.connect(\"localhost\",","nats.connect(\"myname:password@localhost\")","nats.connect(\"mytoken@localhost\")","nats.connect(\"nats://demo.nats.io:4222\")","nats.connect(\"nats://demo.nats.io:4222\");","nats.connect(\"nats://foo:bar@localhost:4222\")","nats.connect(\"nats://localhost:4222\",","nats.connect(\"nats://myname:password@localhost:4222\");","nats.connect(\"nats://mytoken@localhost:4222\");//token","nats.connect();","nats.connect(nats.defaulturl)","nats.connect(nats.defaulturl,","nats.connect(options)","nats.connect(options);","nats.connect(strings.join(servers,","nats.connect(url);","nats.connect({","nats.connect({url:","nats.connected:","nats.create_inbox","nats.create_inbox)","nats.createinbox();","nats.disconnecthandler(func(c","nats.disconnecthandler(func(nc","nats.discoveredservershandler(func(nc","nats.dontrandomize())","nats.drain","nats.draining?","nats.draintimeout(10*time.millisecond).","nats.draintimeout(10*time.second),","nats.errorhandler(func(_","nats.errorhandler(func(nc","nats.errorhandler(natserrhandler))","nats.errslowconsum","nats.getdefaultoptions()","nats.git","nats.go","nats.io,","nats.java","nats.json_encoder)","nats.log","nats.max_control_line_s","nats.maxreconnects(10))","nats.net","nats.newencodedconn(nc,","nats.newinbox()","nats.nkeyoptionfromseed(\"seed.txt\")","nats.noecho())","nats.noreconnect())","nats.noreconnect(),","nats.on_clos","nats.on_disconnect","nats.on_error","nats.on_reconnect","nats.pinginterval(20*time.second))","nats.rb","nats.reconnectbufsize(5*1024*1024))","nats.reconnecthandler(func(c","nats.reconnecthandler(func(nc","nats.reconnectwait(10*time.second))","nats.reconnectwait(2","nats.rootcas(\"resources/certs/ca.pem\"))","nats.secure(),","nats.setcustomdialer(cd),","nats.start","nats.start(\"deadbeef@127.0.0.1:4222\")","nats.start(\"nats://demo.nats.io:4222\",","nats.start(:serv","nats.start(drain_timeout:","nats.start(max_outstanding_pings:","nats.start(max_reconnect_attempts:","nats.start(pedantic:","nats.start(ping_interval:","nats.start(servers:","nats.start(servers:[\"nats://127.0.0.1:4222\"])","nats.start(servers:[\"nats://demo.nats.io:4222\"])","nats.start(servers:[\"nats://myname:password@127.0.0.1:4222\"],","nats.start(token:","nats.start(verbose:","nats.stop","nats.subscribe('bar',","nats.subscribe('foo',","nats.subscribe('quux',","nats.t","nats.timeout(10*time.second))","nats.token(\"mytoken\"))","nats.usercredentials(\"path_to_creds_file\"))","nats.userinfo(\"myname\",","nats/exampl","nats/examples/nat","nats/tree/master/examples).","nats:","nats://0.0.0.0:6222","nats://10.10.0.1:5222","nats://10.10.0.2:5222","nats://:","nats://dag0htxl4rgg7dxdajwbc8@localhost:4222","nats://demo.nats.io","nats://demo.nats.io:4222","nats://demo.nats.io:4222,","nats://host:port","nats://localhost:4222","nats://localhost:4222:","nats://localhost:4248","nats://localhost:4248:","nats://localhost:5248","nats://localhost:6222","nats://localhost:6222,nats://localhost:6333","nats://localhost:6248","nats://localhost:6333","nats://localhost:6444","nats://nat","nats://s3cr3t@localhost:4222","nats://server:port","nats://token@server:port","nats://user:password@server:port","nats:1.0.0","nats:1.1.0","nats:latest","nats:rubi","nats=3","nats_pub_sub","nats_queu","nats_request_repli","nats_serv","nats_stream","natsconnection,","natserr","natserr)","natserrhandler(nc","natur","nayh35q7roqhlq3k565jr4optjgo5ek4fjx6kx5ihheplqbrsyvwi2no","nbhudbf3tvjswcdpg2hski4i2sbspdtnyexemofazuzyxva2iyrugpzu","nbnynr4znth4n2uqksaakbafldv3pzo4ouyonsuiqastqt7bt4zf6wx7","nc","nc,","nc.auto_unsubscribe(sid,","nc.close","nc.close()","nc.close();","nc.closing?","nc.connect(","nc.connect(\"nats://127.0.0.1:4222\",","nc.connect(\"tls://demo.nats.io:4443\",","nc.connect()","nc.connect(**options)","nc.connect(connect_timeout=2)","nc.connect(io_loop=loop,","nc.connect(servers=[","nc.connect(servers=[\"nats://127.0.0.1:4222\"],","nc.connect(servers=[\"nats://demo.nats.io:4222\"])","nc.connect(servers=[\"nats://demo.nats.io:4222\"],","nc.connect(servers=[\"nats://myname:password@demo.nats.io:4222\"])","nc.connect(servers=[\"nats://mytoken@demo.nats.io:4222\"])","nc.connected?","nc.createdispatcher((msg)","nc.discoveredservers())","nc.drain","nc.drain()","nc.drain();","nc.drain(duration.ofseconds(10));","nc.drain(sid)","nc.flush","nc.flush(()","nc.flush()","nc.flush();","nc.flush(duration.ofseconds(1));","nc.flush(duration.zero);","nc.flush(timeout=1)","nc.flushtimeout(time.second);","nc.getmaxpayload();","nc.getservers())","nc.getstatus());","nc.is_closed)","nc.is_connected)","nc.is_draining:","nc.is_reconnecting:","nc.max_payload)","nc.maxpayload()","nc.on('close',","nc.on('connect',","nc.on('disconnect',","nc.on('error',","nc.on('permission_error',","nc.on('reconnect',","nc.on('reconnecting',","nc.on('serverschanged',","nc.on('serversdiscovered',","nc.on_clos","nc.on_disconnect","nc.on_error","nc.on_reconnect","nc.publish(\"foo\",","nc.publish(\"hello\",","nc.publish(\"time\",","nc.publish(\"time.a.east\",","nc.publish(\"time.b.east\",","nc.publish(\"time.c.west\",","nc.publish(\"time.d.west\",","nc.publish(\"time.eu.east\",","nc.publish(\"time.eu.east.warsaw\",","nc.publish(\"time.us.east\",","nc.publish(\"time.us.east.atlanta\",","nc.publish(\"updates\",","nc.publish('foo');","nc.publish('time',","nc.publish('time.us.central');","nc.publish('time.us.east');","nc.publish('time.us.mountain');","nc.publish('time.us.west');","nc.publish('updates',","nc.publish(msg.getreplyto(),","nc.publish(msg.reply,","nc.publish(reply,","nc.publish_request(\"time\",","nc.publishrequest(\"time\",","nc.publishrequest(subject,","nc.queuesubscribe(\"updates\",","nc.reconnecting?","nc.request(\"help\",","nc.request(\"time\",","nc.request('time',","nc.requestone('time',","nc.servers())","nc.status()","nc.subscribe(\"foo\",","nc.subscribe(\"hello\")","nc.subscribe(\"help\",","nc.subscribe(\"time\")","nc.subscribe(\"time\");","nc.subscribe(\"time\",","nc.subscribe(\"time.*.east\")","nc.subscribe(\"time.*.east\",","nc.subscribe(\"time.>\")","nc.subscribe(\"time.>\",","nc.subscribe(\"updates\")","nc.subscribe(\"updates\");","nc.subscribe(\"updates\",","nc.subscribe('time',","nc.subscribe('time.>',","nc.subscribe('time.us.*',","nc.subscribe('updates',","nc.subscribe(createinbox(),","nc.subscribe(inbox)","nc.subscribe(inbox,","nc.subscribe(nats.createinbox(),","nc.subscribe(uniquereplyto);","nc.subscribesync(\"time\")","nc.subscribesync(\"updates\")","nc.subscribesync(replyto)","nc.subscribesync(uniquereplyto)","nc.unsubscribe(e.sid)","nc.unsubscribe(sid)","nc.unsubscribe(sub);","nc.unsubscribe(sub2,","nc1","nc1.close();","nc1:","nca","nca.connect(no_echo=true)","nca.drain()","nca.flush()","nca.publish(\"greetings\",","nca.subscribe(\"greetings\",","ncb","ncb.connect()","ncb.drain()","ncb.publish(\"greetings\",","nceojj5sbjkutmzednu3nbpjsljpcmqjuiqiwkfhwe5dpetjkhx2co2i","nd6zzdqqdgkyqgdd6qn2y26yeglth6bmmojz2xjb2vaspvii3xd6rfoq","necessari","necessarili","necessary.","need","need:","needed).","needed.","network","network.","network:","networks,","never","new","new_inbox()","new_inbox(),","newer","newlin","newline.","newlines:","newonly:","next","next,","ng","ngs,","ngs.","ngs.usage.account_pub_nkey","ni","ni(m","nil","nil);","nil,","nk","nk.","nk:","nkey","nkey.","nkey.createuser(null);","nkey:","nkey_se","nkeys)","nkeys,","nkeys.","nkeys.fromseed(buffer.from(nkey_seed));","nkeys:","nkeys_path","nkeysโ€™);","no_advertis","no_echo","no_echo:","node","node'","node.","node:","nodes,","nodes.","nodes:","nodesep=1];","noecho().","noecho:","noisy.","nolimit","non","non_act","nonc","nonce)","nonce,","nonce.","none","nonloc","noout","norandomize().","norandomize:","noreconnect().","normal","normal,","normally,","not)","not,","note","note,","note.","note:","notic","notif","notifempti","notifi","notification:","notify:","now","now,","now.in(zoneid)","now:","np","np).","npm","ns","nsc","nsc_home","nuid,","nuid.nextglobal();","null)","null);","null,","null;","num_connect","num_connections]","num_msgs]","num_publishers]","num_subscribers]","number","numer","numeric\"","o","o):","o,","o.","o2","oayi3yuzswdn","oayi3yuzswdnmerd2in3hzsip3ja2e3vdtxstevoiii273xl2nabjp64","object","object.","obk73olqojwn","observ","obtain","obviously,","occur","occurring.","occurs.","odmyci5tszy6","odmyci5tszy6mflobbq2rnrbraxrkjkac5uacrc6h6cjxclr2sttgaaq","odwzj2kapf76wowmpcjf6by4qipltuiy4jiblu4k3ydg3ghiwbvwbhuz","of:","off.","offer","offering.","offici","offline,","offset","offset).","often,","often.","old","older","oldest","omit","on","on,","on.","on/off","on:","onc","once,","once.","one\"","one)","one,","one.","one:","ones.","ones:","oneโ€™","onlin","only,","only.","op","opaqu","open","openssl","openssl:","oper","operation':","operation.","operations)","operations.","operations...","operator).","operator,","operator.","operator:","operatorjwtpath","operators,","operators.","operatorโ€™","opportun","opportunities.","opt","opt)","opt,","optim","optimist","optimistically,","option","option)","option).","option):","option,","option.","optional)","optional,","optional.","optional.reply.subject","options,","options.","options.builder().","options.max_payload);","options:","options[\"closed_cb\"]","options[\"disconnected_cb\"]","options[\"error_cb\"]","options[\"reconnected_cb\"]","opts);","opts,","opts...)","opts.connect()","opts.maxpingsout","opts.pedant","opts.url","opts.verbos","or,","or\\t`","order","order,","order.","organ","organization,","organizations,","orient","origin","os","os:","other","other,","other.","others)","otherwis","otherwise.","ou=cncf,","out","out.","out:","outbound","outbound,","outgo","output","output,","output.","output:","outsid","outstand","over","over.","overlap","overlay","overli","overload","overview","own","own,","owner","p","p,","pabc","packag","page","page.","pair","pair.","paradigm.","paramet","parameter.","parameter/opt","parameter:","parameters,","parameters.","parameters:","parent","pars","parser","parsingโ€”it","part","part,","particular","parties.","party.","pass","pass:","password","password)","password).","password,","password.","password:","passwords.","past,","path","path)","path.","paths,","pattern","pattern.","patterns,","patterns.","patterns:","paus","payload","payload\"","payload\");","payload,","payload.","payload.binari","payload.json","payload:","payloads.","pedant","pedantic().","pedantic:","pedantic=true)","peers.","pend","pending,","pending_bytes_limit=5*1024*1024,","pending_msgs_limit=1000)","pending_msgs_limit=5)","pendingmsgs,","penwidth=1];","peopl","per","perform","performance,","performance.","performance:","perhap","period","periodically,","perman","permiss","permissions,","permissions.","permissions:","persist","persisted.","persistent,","perspect","perspective.","pgrep","phelp","philosophi","philosophy.","physic","pick","pid","pid.","ping","ping.","ping/pong","ping/pong.","ping\\r\\n","ping_interval=1,","ping_interval=20,","pinginterval(duration.ofseconds(20)).","pinginterval:","pings,","place","place).","place.","placed,","plain","plaintext","platform","platform,","platform.","play","play,","playback","pleas","plu","point","point,","point.","poll","pong","pong,","pong.","pong\\r\\n","pool:","port","port':","port,","port.","port:","portal","portion","ports.","ports:","posit","position,","position.","possibl","possible,","post","postpon","postrot","potenti","power","powerful.","pre","prefer","prefix","prefix.","premis","prerequisit","presenc","present","present,","present.","preserv","preservebuffers:","press","pressur","pressure.","presum","prevent","previou","previous","price","price:","price;","primari","primarili","primit","primitive,","print","print(\"[received]","print(\"[received]\",","print(\"connect","print(\"error:","print(\"got","print(\"maximum","print(\"msg","print(\"msg\",","print(\"msg:\",","print(\"receiv","print(\"reconnect","print(\"reply:\",","print(\"slow","print(\"th","print(\"ther","print(\"tim","print(data)","print(msg)","print:","printed.","printout","prior","priori","priori,","prioriti","privaci","privat","private.","privileges,","privileges.","probabl","problem","problem.","problems,","problems.","procces","proce","procedur","procedure.","process","process'","process,","process.","processed,","processed.","processing,","processing.","produc","produced.","product","production.","program","program.","project","project'","prometheu","promis","prompt","prompt:","proof","propag","propagation,","proper","properli","properti","properties:","proposit","protect","protected,","proto","proto:","protocol","protocol':","protocol,","protocol.","protocol:","protocols,","prove","provid","provided.","provides.","provis","proxi","proxy,","prune","pruning.","ps","pub","pub.go","pub/main.go","pub/sub","pub1","puback","public","public,","public/priv","public;","publication.","publickey:","publish","publish,","publish.","publish/subscrib","published,","published.","published:","publisher\",","publisher,","publisher.","publisher/requestor","publisher:nat","publisher;","publishers,","publishers.","publisher}\"];","publishjson","publishmsg().","pubmsg","pubout","pubprefix:","pubs=1,","pubs=5,","pull","purpos","purposes)","purposes.","push","put","python","python,","python2","q","qgroup:","qgroup=[]","qrsid:14:44\\r\\n","qrsid::","qrsid::\\r\\n","qsub.go","qsub1,","qsub2,","qualiti","queri","queue","queue,","queue.get()","queue.put(msg)","queue.put_nowait(msg)","queue/dur","queue:","queue=\"workers\",","queuename,","quick","quickli","quickly.","quiet","quit","quot","r","r,","random","randomization,","randomli","rang","range(0,","rank=sam","rankdir=lr","rankdir=lr;","rapid","rare","rate","rates.","raw","raw/opaqu","rc11","rc5\",","rc9\",","re","reach","reached,","reached.","read","readabl","reader","readfilesync(cacertpath);","readfilesync(clientcertpath);","readfilesync(clientkeypath);","readi","readm","readonli","reads:","readtimeout","real","realiz","realli","realtim","reason","reasons,","reasons.","rebooted.","recast","receipt","receipt.","receiv","receive:","received,","received.","received...","received:","receiver,","receiver.","recent","reciev","recogn","recommend","reconfigur","reconnect","reconnect,","reconnect.","reconnect:","reconnect_time_wait:","reconnect_time_wait=10,","reconnectbuffersize(5","reconnected');","reconnected.","reconnected_cb","reconnected_cb():","reconnected_cb=reconnected_cb,","reconnecthandler(cb","reconnecting');","reconnecttimewait","reconnecttimewait:","reconnectwait(duration.ofseconds(10)).","recov","redeliv","redelivered.","redelivered:","redeliveri","redhat","redirect","redistribut","reduc","reenter","refer","referenc","refresh","refus","regard","regardless","regex","regex.","region","regist","registration.","regular","regular,","reissu","reject","reject();","reject_unknown","rejected.","rel","relat","relationship","releas","release,","release.","released.","relev","reli","reliabl","reload","rem","remade.","remain","remained.","remains.","remap","rememb","remot","remote_syslog","remotes.","remov","removed.","removed:","reopen","repeat","replac","replay","repli","replica","replier:","reply)","reply,","reply.","reply:","reply;","reply=reply,","replyto,","reply|","reply}","repo","report","reporting.","repositori","repository.","repres","req","req,","req.a","req.b","req.b,","req.b.","req.go","req/rep","request","request,","request.","request/repli","request/respons","request:","requester.","requestor","requestor.","requestor:","requests,","requests.","requests.append(request)","requests/respons","requests:","requir","require('t","require(โ€˜natsโ€˜);","required':","required)","required,","required.","requirement.","requires:","resend","reserv","resili","resist","resolv","resolve();","resolved.","resolver)","resolver.","resolver:","resolver_preload","resolver_preload:","resourc","resources.","respect","respond","respond.","respons","response\"","response\")","response,","response.","response:","responses\".format(len(responses)))","responses):","responses.","responses:","rest","restart","restarts.","restarts/resubscribes,","restrict","result","result,","result:","resum","retri","retriev","return","return,","return;","returned,","returning.","returns.","reus","review","revoc","revolv","rewritten.","rfc","rfc7519","rich","rid:1","rid:2","right","ring","rm","role","roll","room","root","root@d12f9f3fcdde:/go#","root@d12f9f3fcdde:/go/src/github.com/nat","rotat","round","rout","route,","route.","route:","route://127.0.0.1:4246","route://127.0.0.1:5222/\",\"connect_urls\":[\"localhost:4222\"]}","route://192.168.59.103:7244","route://192.168.59.103:7244)","route://192.168.59.103:7246","route://192.168.59.103:7248","route://192.168.59.104:7244","route://192.168.59.104:7246","route://:","route://ruser:t0ps3cr3t@nat","route://ruser:t0ps3cr3t@otherdockerhost:6222","route://user1:pass1@127.0.0.1:4245","route://user2:pass2@127.0.0.1:4246","route_us","routes,","routes.","routes=nat","routez","routez,","routin","row.","rpli","rply.go","rsid:1:1","rsid:1:1\\r\\n","rsid:5:1\\r\\n","rsid::","rsid::\\r\\n","rubi","rule","rules.","run","run(loop):","run:","running');","running,","running.","running:","runtim","runtime.","rurl","ruser","s","s,","s.","s.price)","s.symbol,","s3cr3t","saak3el5bw4zor7jvtxz4tj6rqbsoixk27afppsyvp4kdhjksrqfvrahia","safe","safer,","safeti","said,","same","same.","sampl","san","saop","save","saving.","say","say:","sc,","sc.ex","sc.publish(\"foo\",","sc.publishasync(\"foo\",","sc.queuesubscribe(channelid,","sc.subscribe(\"foo\",","scalability.","scalabl","scalable,","scale","scale,","scale.","scaling,","scatter","scenario","scenario,","scenario:","scenarios,","scenarios.","scenarios:","scheme","scope","screen","script","sdf","sdf.format(cal.gettime()).getbytes(standardcharsets.utf_8);","seamlessli","second","second)","second).","second,","second:","secondari","seconds)","seconds.","seconds:","secret","secrets.","section","section.","secur","securerandom());","security,","security:","see","see.","see:","seed","seed'","seed.","seed.conf,","seen","seen:","segment","select","selected,","selected.","self","semant","semantics,","semicolon","send","sender","sending.","sens","sensit","sensitive,","sensor","sensors.>","sensors.east","sensors.north,","sensors.south,","sensors.west.","sent","sent,","separ","sequenc","sequence:","sequences.","sequencestart:","serv","server","server\";","server\"];","server'","server',","server(\"nats://demo.nats.io:4222\").","server(\"nats://localhost:1222\").","server(\"nats://localhost:1223\").","server(\"nats://localhost:1224\").","server(\"nats://localhost:4222\").","server(\"tls://localhost:4222\").","server)","server).","server);","server,","server.","server.conf","server.conf:","server.ex","server.log","server.log\"","server.nats,","server.pid","server.pid`","server.zip","server/releases/download/v2.0.0/nat","server/util/mkpasswd","server:","server:latest","server[test","server]","server_id:","serverinfo)","servers,","servers.","servers:","servers;","servers=[","servers=[\"nats://demo.nats.io:4222\"],","serversaddedlisten","serversaddedlistener()).","serverโ€™","servic","service,","service.","service:","services,","services.","serviceโ€™","session","session.","session...","set","set)","set),","set,","set.","set.');","set:","set]","setconnectionlisten","seterrorlisten","setting.","settings,","settings.","settings:","setup","setup.","setup:","setups,","sever","sha256","sha256:","sha256:47b825feb34e545317c4ad122bd1a752a3172bbbc72104fc7fb5e57cf90f79e4","shadow","shape=box;","shard","share","shared,","shared.","sharing,","shell","shell):","short","shouldn't","show","shown","shows:","shuffl","shuffling,","shut","shutdown","sid","sid:","side","side,","side.","sides.","sigcb:","sighup","sigint","sigkil","sign","sign(byte[]","sign,","sign:","signal","signal:","signaling.","signals,","signals:","signatur","signed.","signer","signifi","signing.","signingkeys,","sigusr1","sigusr2","silo","similar","similar.","simpl","simple,","simple.","simpledateformat","simpledateformat(\"hh:mm:ss\");","simpler","simpler:","simplest","simplest,","simpli","simplic","simplicity.","simplifi","simul","singl","singleton","sit","site.","situat","situation.","situations.","size","size,","size.","sk","sk.sign(nonce);","skip","sl","sl,","sledg","slice","slight","slightli","slow","slow,","slow_consum","slowconsumerdetected(connect","slowconsumerlisten","slowconsumerreport","slowconsumerreporter()).","slowli","small","smaller","smart","so,","so.","soaihsqsam3zji5w6u5m4inh7fucqq5etj5rmpvjzcjltdrey6znee6lzq","socket","softwar","sole","solicit","solid","solv","somehow","someon","someth","sometim","somewhat","somewher","soon","sort","sort,","sourc","space","space,","space.","special","special,","specif","specifi","specified,","specified.","specified:","spectr","speed","spend","spent","split","spof","sport","src","src/github.com/nat","ssl","ssl.create_default_context(purpose=ssl.purpose.server_auth)","ssl_ctx","ssl_ctx.load_cert_chain(certfile='cli","ssl_ctx.load_verify_locations('ca.pem')","ssl_requir","sslcontext","sslcontext(ctx).","sslcontext.getinstance(options.default_ssl_protocol);","sslcontext.setdefault(sslutils2.createsslcontext());","sslutil","sslutils.createsslcontext();","sslutils2","stable.","stale","stan.ackwait(aw))","stan.connect(clusterid,","stan.deliverallavailable())","stan.durablename(\"mi","stan.maxinflight(25))","stan.natsconn(nc))","stan.natsurl(โ€œnats://localhost:4222โ€))","stan.setmanualackmode(),","stan.startatsequence(22))","stan.startattime(starttime))","stan.startwithlastreceived())","stan:","stand","standalon","standard","standardcharsets.utf_8));","standardcharsets.utf_8);","start","start,","start.","started,","startposit","startposition:","startsequ","startsequence:","starttim","starttimedelta","starttimedelta:","stat","state","state,","states,","static","static,","statist","statistics.","stats:","statu","status.","status:","stay","stddev","step","step.","still","stk","stk.price=1200;","stk.symbol=\"goog\";","stock","stock:","stockforjsonpub","stockforjsonpub();","stockforjsonsub","stockforjsonsub.class);","stop","stop,","stop=","stop=/path/to/pidfil","storag","storage)","store","store.","store.load(in,","store;","store_password","store_password.tochararray());","stores.","str","str);","straightforward","straightforward.","strategi","strategy.","stream","stream,","stream.","stream:","streaming#","streaming)","streaming,","streaming/","streaming:0.9.2","streaming_modul","streams,","streamโ€™","strict","string","string(m.data)","string(msg.data)","string(msg.getdata(),","string)","string,","string.","strings,","struct","structur","structure.","structures,","style","style=\"dashed\"];","style=\"dotted\"];","style=\"rounded\",","style=\"rounded\";","suacssl3uahudxkfsnvuzrf5uhpmwz6bfdtj7m6usdxiednppqyyycu3vi","suaoy5jz2wjkvr4uo2kj2p3sw6fzfnweoimaxf4wzeunvqxxuokgm55cy","sub","sub(msg):","sub,","sub.","sub.autounsubscribe(1);","sub.dropped()","sub.go","sub.nextmessage(duration.ofseconds(1));","sub.nextmessage(duration.zero);","sub.nextmsg(1","sub.nextmsg(10","sub.nextmsg(time.second)","sub.pending()","sub.setpendinglimits(1024*500,","sub.setpendinglimits(1_000,","sub.subject)","sub.subject,","sub.unsubscribe()","sub.unsubscribe();","sub.unsubscribe(1);","sub/main.go","sub1","sub1,","sub1.setpendinglimits(1000,","sub1[shape=box,","sub2","sub2,","sub2.setpendinglimits(","sub2.unsubscribe(10);","sub3","sub4","subgraph","subject","subject'","subject':","subject)","subject).","subject,","subject.","subject.)","subject:","subject:\"hello\"","subject=subject,","subjects,","subjects.","subjects:","sublist,","subrequest","subrequests:","subs,","subs.","subs=0]","subs=1.","subs=1]","subs=5]","subscrib","subscribe,","subscribe.","subscribejson","subscriber,","subscriber.","subscriber:","subscriber:nat","subscriber_1","subscriber_2","subscribers,","subscribers.","subscribers.:","subscribing,","subscript","subscription,","subscription.","subscription.nextmsg(timeout","subscription:","subscriptionrequest","subscriptionrequest.","subscriptionrespons","subscriptionresponse.","subscriptions,","subscriptions.","subscriptions:","subsequ","subset","subsystem","subsz.","sub|","succeeds,","succeeds.","success","success!","successful,","successful.","successfulli","successfully,","such","sudo","suffic","suffice.","suffici","suit","sum","sum,","summari","summaries,","summary)","summary,","summat","super","superclust","supercluster.","superclusters,","superclusters.","suppli","supplied,","supplied.","support","supported.","supported:","suppress","sure","surprisingli","surviv","suspend","swarm","switch","sy","symbol","symbol;","synadia","synadia'","synadia,","synadiaโ€™","sync","sync.waitgroup{}","synchron","synchronously.","syntact","syntax","syntax,","syntax.","syntax:","syslog","syslog:","syslog://:","syslog://logs.papertrailapp.com:26900","system","system,","system.","system.out.println(\"a","system.out.println(\"connect","system.out.println(\"known","system.out.println(\"th","system.out.println(new","system.out.println(stk);","system.out.println(str);","system.out.println(subject","system_account","system_account:","systemaccountjwtpath","systems,","systems.","systems:","sysu","t","t,","t.log('client","t.log('disconnect","t.log('error',","t.log('got","t.log('max_payload',","t.log('permission_error',","t.log('reconnect","t.log('round","t.log('serv","t.log('serversdiscovered',","t.log('th","t.log('work","t.log(msg);","t.log(msg.data);","t.log(msg.subject,","t.log(nc.info.max_payload);","t.log(subject,","t0ps3cr3t","t0ps3cr3tt00!","t=fals","ta","tabl","table:","tail","take","taken","talk","tap","tap.","target","task","tcp","tcp/ip","team","team.","techniqu","techniques,","technolog","technologies.","telemetri","tell","telnet","telnet.","temporari","tenanc","tenancy,","tenant.","term","termin","terminal,","terms,","terse,","test","test,","test/configs/certs/cli","test/configs/certs/tlsauth/client2.pem","test:","testaccount","testaccount:","testing:","testus","testuser.","text","that,","that.","them,","them.","themselv","themselves.","thenkey","thenkey.getpublickey();","thenkey.sign(nonce);","there'","therefor","thereโ€™","these:","thing","things.","think","third","third,","third.","this,","this.","this:","those","though","thought","thrashing,","threads,","threads.","three","throttl","through","throughout","throughput","throw","thu","thunder","thus,","ti","ticker","time","time);","time,","time.","time.*.east","time.*.east\"];","time.*.east,","time.dur","time.duration)","time.eu.east","time.eu.east.","time.loadlocation(\"america/new_york\")","time.loadlocation(\"europe/warsaw\")","time.millisecond","time.now","time.now()","time.now().sub(start)","time.now.to_f","time.second)","time.second),","time.second,","time.tim","time.u","time.us\"];","time.us.*","time.us.*\"];","time.us.>","time.us.>\"];","time.us.east","time.us.east\"];","time.us.east.atlanta","time.us.east.atlanta\"];","time.us.east.atlanta,","time.us.east.warsaw","time?')","time?',","time_as_byt","time_as_bytes)","timeasbyt","timeasbytes)","timeasbytes);","timedeltastart:","timeout","timeout':","timeout,","timeout.","timeout:","timeout=1)","timeouts,","timer","timestamp","timestamp,","timestamp:","timestamp:1526948600795366785","timestamp:1526948604613783399","timestamp:1526948606124258269","timestamped.","timezon","timing.","tl","tls,","tls.","tls/1.2","tls:","tls://:.","tls://demo.nats.io:4222.","tls=ssl_ctx)","tls]","tls_client_cacert","tls_client_cert","tls_client_key","tls_ecdhe_rsa_with_aes_128_gcm_sha256","tls_required:","tls_verify:","tlscacert","tlscacert=./test/configs/certs/ca.pem","tlscert","tlscert=./serv","tlscert=./test/configs/certs/serv","tlskey","tlskey=./serv","tlskey=./test/configs/certs/serv","tlsverifi","to\"","to\",","to',","to,","to.","to:","to]","toallow","today.","togeth","together,","together.","together:","together;","toggl","token","token!\"","token\"","token(\"mytoken\").","token)","token).","token,","token.","token:","token=\"hello\";","tokens)","tokens,","toler","took","tool","tool)","tool.","tool:","toolbox.","tooling:","tools:","top","top,","top.","topic","topics.","topolog","topology.","tostring()","total","total,","trace","trace.","trace:","track","tradit","traffic","traffic,","traffic.","transmit","transpar","transparent.","transport","travel","treat","tremend","tri","tricki","trickier,","trigger","trip","troubl","true","true)","true).","true,","true.","true:","true});","truli","truncat","trust","trust.","trusted,","trusted.","trustmanager[]","trustmanagerfactori","trustmanagerfactory.getinstance(algorithm);","truststore_path","try:","ts","tune","turn","tutori","tutorial,","tutorial.","tweak","twice","two","two.","type","type(e)","type)","typescript","typic","u","ubuntu,","ucd2zruk5po2","ucqb7nonbkrc","udp:","udp://localhost:514","udxu4rcsjnzoiqhznwxhxordprtgnjahahfrgzneejcpqtt2m7nlcnf4","udykzhlxfh56","unabl","unacknowledg","unauthent","unauthor","unavail","under","underli","understand","unexpect","uni","uniqu","unique,","unique.","unique;","unique_reply_to","unique_reply_to,","uniquereplyto","uniquereplyto,","unit","unix","unknown","unless","unlik","unlimit","unplan","unsign","unsub","unsubcrib","unsubrequests:","unsubscrib","unsubscribe)","unsubscribe.","unsubscribe:","unsubscriberequest","unsubscribes.","unsubscribing,","until","untouch","untouched.","unus","unzip","unzip.","up","up,","up.","updat","update,","update:","updated,","updates\"];","updates,","updates.","updates.*","updates.1,","updates.2,","updates:","upgrad","upgrade.","upon","url","url().","url(http://localhost:9090/jwt/v1/accounts/)","url)","url);","url,","url.","url:","urls);","url});","us","us\",","usag","usage,","usage.","usage:","use,","use.","use:","used,","used.","used:","user","user'","user,","user.","user/password","user:","userb","usercredenti","userinfo(\"myname\",\"password\").","usernam","username/password","users,","users.","users:","usersโ€™","using.","using:","usual","utc","utf","util","utility,","utility.","v","v,","v0.8.0","v2.0.0","v2.0.0darwin","valid","valid,","valid:","valid;","validated,","valu","value\"","value),","value.","var","vari","variabl","variable:","variables.","variables:","varieti","variou","varz","varz,","vend","verbos","verbose().","verbose:","verbose=true)","verfication.","veri","verif","verifi","verification,","verification.","verified.","verify:","verify_and_map","verify_and_map.","verify_and_map:","version","version.","version:","versions,","via","view","view,","violat","violation':","virtu","virtual","visibl","visit","visual","vnszhmoa3trggltz3pgu3bpscb0uj5rdvthzzoyz18_wlcbfo6h8s01s3d2qf9j36lkhpplmtupheyqeo04aw","void","volum","volume.","vs.","w","w/option","wait","wait,","wait.","waitforestablishedconnection:","waitgroup","walk","walkthrough","wallyqs/rubi","want","warn","wast","way","way,","way.","ways:","we'll","web","weight=2];","well","well\")","well\"));","well\");","well\".getbytes(standardcharsets.utf_8));","well')","well.","wellโ€","weโ€™ll","wg","wg.add(1)","wg.add(10)","wg.add(2)","wg.add(4)","wg.done()","wg.wait()","what'","whatsoev","whatsoever.","whenev","where:","whether","whichev","whitelist","whitelisted,","whitespac","whitespace,","whitespace.","whitespace:","whole","whom.","why.","why?","wide","width=4,","width=8];","wild,","wild.","wildcard","wildcard)","wildcard,","wildcard.","wildcards)","wildcards,","wildcards.","wildcards:","willis\";","window","window.","windows,","windows.","windows:","wire","wire,","wire.\"","with,","with.","with:","within","withmulti","without","without*","won't","won't.","wonโ€™t","work","work.","work:","worker","workers\"];","workflow.","workload","world","world!')","world\"))","world\"),","world\\r\\n","worri","worth","wouldn't","wrap","wrapper","write","write_deadlin","write_deadline:","writetimeout","written","wrongs.","x","x.509","x509","x509v3","x86_64)","x86_64,","xfy7q7ps90hzzvp5k3osldjadrixp4udpuqeuhv9qk9emk40pcgh6nzj7gmazlu6rpacbxag","xzfu3u7usapwkuthomogzm","yaml","yaml.","yard","ye","you'd","you'll","you'v","you.","yourself","yourself.","yourself:","youโ€™ll","zero","zip","zonedatetim","zonedatetime.string()","zoneddatetim","zoneddatetime.format(datetimeformatter.iso_zoned_date_time);","zoneddatetime.ofinstant(instant.now(),","zoneid","zoneid);","zoneid,","zoneid.of(\"america/new_york\");","zoneid.of(\"europe/warsaw\");","zones,","{","{\"server_id\":\"ad29ea9cbb16f2865c177bbd4db446ca\",\"version\":\"0.6.8\",\"go\":\"go1.5.1\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"max_payload\":1048576}","{\"server_id\":\"kp19vtlb417xelnv8kkac5\",\"version\":\"0.9.4\",\"go\":\"\",\"host\":\"localhost\",\"port\":5222,\"auth_required\":false,\"tls_required\":false,\"tls_verify\":false,\"max_payload\":1048576,\"ip\":\"nat","{\"server_id\":\"ymeti2z178lm5sg302ygh2\",\"version\":\"0.9.6\",\"go\":\"go1.7.4\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"tls_required\":false,\"tls_verify\":false,\"max_payload\":1048576}","{\"server_id\":\"zk0gq3jbsrg3oyxcrrle09\",\"version\":\"1.2.0\",\"proto\":1,\"go\":\"go1.10.3\",\"host\":\"0.0.0.0\",\"port\":4222,\"max_payload\":1048576,\"client_id\":2392}","{\"symbol\":","{\"symbol\"=>\"goog\",","{\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"\",\"lang\":\"go\",\"version\":\"1.2.2\",\"protocol\":1}]\\r\\n","{\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"wt0vffeqyodgmvbc2akx0b\"}\\r\\n","{...})","{...},","{:uri=>#,","{[\"option_name\":option_value],...}","{data}\".format(","{foo:","{max:","{name:","{queue:","{rank","{reply}':","{ticker:","{timezone:","{url}\".format(url=nc.connected_url.netloc))","{user:","{}","{}\".format(e))","{})","|","|e|","|msg,","|msg|","|nc|","|reason|","}","}\"];","}'","}()","}))","}),","}).","}).encode())","});","},","~","~/.nkey","~/.nkeys,","~/.nkeys.","~/.nkeys/o/accounts/a/users/leaf.cr","~/.nkeys/o/accounts/a/users/nolimit.cr","~/.nkeys/saop/accounts/sys/users/sysu.cr","~/.nkeys/test/accounts/accountb/users/userb.cr","~/.nkeys/test/accounts/testaccount/users/testuser.cr","~/.nkeys/test/test.nk.","~/.nsc","~/.nsc/nat","~/.nsc/nats.","~/.nsc/nats//.jwt.","~/.nsc/nats/o","~/.nsc/nats/saop","~/.nsc/nats/test","~/.nsc/nats/test/test.jwt","~/.nsc/nats/test/test.jwt.","~/.nsc/nsc.json","โ€”","โ€”help","โ€”pass","โ€”subject","โ€”user","โ€˜a.b.c.dโ€™","โ€˜suacssl3uahudxkfsnvuzrf5uhpmwz6bfdtj7m6usdxiednppqyyycu3vyโ€™;","โ€˜testuserโ€™:","โ€™natsโ€™","โ€œ/users/synadia/.nkeys/memory/accounts/a/users/ta.creds\"","โ€œ/users/synadia/.nkeys/memory/accounts/a/users/ta.nk\"","โ€œaccountbโ€","โ€œall","โ€œdirectedโ€","โ€œhelp.pleaseโ€","โ€œmax","โ€œupdatesโ€","โ€œuserbโ€","โ€œ~/.nkeys/test/accounts/accountb/accountb\"","โ€œ~/.nkeys/test/accounts/testaccount/testaccount.nk\"","โ€œ~/.nkeys/test/test.nkโ€","โ€ฆ","โ”‚","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ","โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"Introduction\nNATS is simple and secure messaging made for developers and operators who want to spend more time developing applications than worrying about a messaging system.\n\nEasy to use for developers and operators\nHigh-Performance\nAlways on and available\nExtremely lightweight\nAt Most Once (NATS) or At Least Once Delivery (NATS Streaming)\nCommon Messaging Pattern Support\nClient support for over 30 different programming languages\nCloud Native, a CNCF project with Kubernetes and Prometheus integrations\n\nNATS is used for:\n\nCloud Messaging\nMicroservices\nCommand and Control\nService Discovery\nEvent Streaming\nIoT and Edge\nTelemetry / Sensor Data\nMobile and Big Data\nAugmenting or Replacing Legacy Messaging\n\n"},"whats_new/whats_new_20.html":{"url":"whats_new/whats_new_20.html","title":"What's New in 2.0","keywords":"","body":"What's New in NATS 2.0\nNATS 2.0 is the largest feature release since the original code base for the server was released. It includes features for security, multi-tenancy, larger networks, and secure sharing, allowing a new way of thinking about NATS as a globally shared utility and as a new and innovative way to solve on-premise communications for modern systems design.\nMulti-Tenancy and Accounts\nEver since NATS was originally designed, it has always been considered to be single tenant. Even when we added support for multiple users, the subject space was still a shared space, and care had to be taken when designing subject spaces so as to not interfere with other applications and services on the NATS systems.\nAs a matter of fact, designing the subject space, and most importantly the prefixes based on organization, or business unit or business function/service, was encouraged as an early exercise. However, even with the best intentions, large NATS systems became overly complex and managing and understanding the subject space was challenging at large scale. Even as we introduced authorization primitives to control which subjects users could publish or subscribe to, the challenge still remained.\nNATS 2.0 introduces accounts. Accounts can be viewed as containers for a subject space. Instead of there being a global subject space that was bound to a server, NATS 2.0 now recognizes accounts, including the default global account $G that defines which data structures the server will utilize to match publishers to subscribers. These subject spaces are isolated and by default, no messages cross from one account to another. This allows multiple groups or organizations to use a simplified subject space that in the past, could have overlapped with others in a larger installation. It also allows for a single NATS infrastructure to be utilized by different users without the need to maintain many silos of NATS servers and clusters.\nAn account binds the subject space data structures, a sublist, and its associated caches, to a list of users. A client application is not aware of this account binding and this was by design to preserve existing clients and the simplicity of the NATS philosophy. When connected to a NATS server, the user is authenticated and validated, and the configuration tells the server which account to bind to the user. The messages then flow as normal, as published messages are matched to subscribers.\nStreams and Services - Account Sharing\nWith the introduction of secure multi-tenancy in NATS 2.0, the desire for accounts expanded beyond just isolation. The NATS core team felt that this could possibly be used to simplify and ease the use of NATS when being utilized for many applications and services that want to communicate over certain subjects. Think of this as the microservices equivalent for NATS applications. In NATS 2.0 we define two abstract concepts that form the basis of sharing messages across accounts; Streams and Services. Streams are published messages defined by a subject, which could include a wildcard. Services are listening endpoints bound to subscribers that usually receive requests and return responses.\nBoth Streams and Services can be exported by an account owner for subsequent import by other accounts. There are two very important aspects of export and import that make account sharing even more powerful. First, exports can be public, meaning anyone can import, or then can require authorization. An account that wants to import the stream or service must have permission from the exporting account owner for the messages to flow between accounts. Second, the account owner always controls their own subject space. To this end, when importing, the account owner can pick and choose where the import will show up in their own subject space. This is a very powerful concept that allows some tremendous opportunities.\nFor instance, in NGS, a commercial offering from Synadia, the power of accounts and sharing is utilized by providing a service imported to all new users of the system allowing them to get their current usage. As users connect and disconnect from the system, the usage servers in NGS gather the events from the system account and calculate the real-time usage information for each account. There is also a usage demo account that can export a single service with a wildcard, Anyone on the demo account can send a request to ngs.usage.ACCOUNT_PUB_NKEY with the body of the message being duration, e.g. 1h, 2d, etc. and receive the usage for that time period for the account. Although the usage is available in NGS, no one actually has access to the demo account since that would mean anyone on the system could get the usage for any known account just by the accountโ€™s public key. Which would not be desirable. The export on requires authorization, so no one can just blindly import the usage data. When a new account registers on the NGS system, the system will get a signed authorization token for the ability to import ONLY their account usage, e.g. . Moreover, the new account owner is allowed to specify where the import is placed, and in this case, we place it on . Thus for every account, the account can send a simple request to and receive their own, and only their own, account usage. All accounts look exactly the same. And in this example we utilized three (3) accounts to essentially have secure domains, or DMZs, to provide the security and control what we want to achieve.\nUnder the covers, the NGS system does several things to pull this off. For streams, the import that is present, will be checked when the importing account does a subscription. If any of the import is covered by the subscription, the system will create a secure shadow subscription on the exporting account subject space for the exported subject. This will map message sent to the original export subject (or a subset scope if it contains wildcards) into the import account. Services are a bit trickier, in essence, you are importing and mapping a subject that the import account can publish to. In our example above with , this is exactly what happens. When a new account publishes a message to the system can map that message into the exporting accountโ€™s subject space. But only doing this would be insufficient, since most of the time the published message is a request, meaning it has a reply subject and expects a response. The system needs to ensure that the response can also cross the account boundary in a secure and meaningful way. NATS 2.0 goes further and anonymizes the reply subject such that the responder has no way of knowing the requestor (unless the body of the message has a clue). NATS knows the requestor is guaranteed to be authorized, but there is no other way to understand or track the requestor. The system sets up ephemeral state to map the random and anonymous reply subject back into the importing account and with the correct reply subject.\nWe believe as time goes on, accounts and more specifically account sharing of streams and services, will be the most influential feature we introduced in the NATS 2.0 release. It will change the way people architect system on technologies like NATS. It will allow systems to scale but maintain simplicity and security in a way that was not possible before.\nSecurity and Authentication\nPrior to NATS 2.0, NATS allowed multi-user deployments and supported username and password. As NATS evolved we supported bcrypt-based password and encouraged NATS users to utilize the tool provided to avoid having any plaintext passwords in their configuration files. However, this still felt insufficient. For NATS 2.0 we wanted to have a system that never had any access whatsoever to private keys, etc. The most common way to do this is via public key technologies. There are ways to prove oneโ€™s identity without ever sharing the private key from a public/private key pair. The team chose Ed25519 as its key algorithm for NATS 2.0. We may add others in the future, but our selection was specific in that Ed25519 can only be used to sign, and has very few branches in its code, providing a higher level of resistance to side-channel attacks like Spectre and Meltdown. NATS has an encoding of these keys making them easily distinguishable and selectable from a copy/paste perspective.\nThe NATS 2.0 server upon client connect will pass a nonce field in the INFO. Clients use this nonce and their private key to sign the nonce. Servers are configured with authorized usersโ€™ public keys only. They can use the public key to validate that the client has the private key that corresponds to the public key. This combined with TLS provides a powerful way to secure and manage NATS clients and users without ever having access to a clientโ€™s private key.\nIn addition for NATS 2.0, we also allow the system to extract a user identity from an x.509 client certificate. So for those who require client certificates and have the management and system infrastructure in place for client-side certificates, you will no longer have to duplicate identity to map to authorization primitives in NATS 2.0.\nNetwork Topologies (Rewrite for Routes and Introduction of Gateways)\nWith the introduction of accounts, the existing clustering protocol for NATS needed to be rewritten. The protocol had some inefficiencies we wanted to correct for quite some time, and the need to introduce account scoping into the clustering protocol gave us an opportunity to correct some of these wrongs. Each message traveling between servers now had to designate which account it was bound to, or the account under which it was published. This allows remote servers to then match the account and subsequently match subscribers from that account for any given message.\nTwo inefficiencies that existed in the original protocol were handling of duplicates in the interest graph, and message delivery across a route in the presence of both normal subscribers and queue-based subscribers. Subscriptions (the interest graph) were always sent across a route to the other side even if the subjects were the same. The other side was smart enough not to send the message more than once for a given subject, however, the interest graph traffic could get very chatty even under normal behaviors. We also would send the message again between servers for every queue group that existed for a given message. This has served us well to date, but the team wanted to be able to update and improve this.\nIn NATS 2.0 we have greatly reduced the interest graph traffic for duplicative subjects and there are more optimizations we can make without needing to change the protocol. We also only send a message once regardless of the interest being represented by normal and queue-based subscribers. The way these two features work is fairly straightforward. For interest propagation, we keep a suppression map that uses reference counts to only send interest for a given subject once, when it goes from 0->1, and when it goes from 1->0. All other changes on the local cluster simply increment or decrement the count in the map. For sending a message only once in the face of any interest, we force the protocol for clusters to require an affirmative list of queue groups to which the receiving server can possibly deliver the message. This allows the distributed queues to work correctly without requiring the โ€œdirectedโ€ message sends between servers.\nAlso in NATS 2.0 we introduced a new connection type called gateways. Gateways allow multiple NATS clusters to be connected together into a supercluster. The team was faced with many challenges in the design of gateways. We wanted the abstract to look fully connected, but we did not want an explosion of connections at large scale. We were also concerned with interest graph traffic that would need to propagate globally when all changes were actually local to a cluster.\nGateways can either be inbound or outbound, but not both. Every server in an origin cluster has exactly one outbound connection where it can send messages to the remote cluster. In addition, they may have zero or more inbound connections for which they send interest and receive messages themselves from the remote cluster. This forms a type of full mesh but with much fewer connections per server, and of course avoids any SPOF scenarios where only one server would be selected to perform communications between the clusters.\nIn addition, outbound connections can be in one of two states, optimistic mode or full knowledge. In full knowledge, all interest graph changes need to be propagated globally for every 0->1 or 1->0 change. This could result in quite a bit of wasted control messages being sent and received. The team designed a way to have a connection in optimistic send mode to start. In this mode, a message will be sent over if we have no information at all about the messageโ€™s subject. If the remote side truly did not have any interest, it can asynchronously send a message indicating so, either for the subject itself, or the whole account. Obviously, this has some edge cases where we are sending more messages (both data and control) then we were saving. So a connection can change its state and move to full knowledge, meaning it wants to know all interest and it will not send a message unless it has knowledge that it should do so. We are continually tweaking this algorithm, but extremely excited about the power it has to create large superclusters. Synadia uses this technology in its NGS offering.\nGateways and SuperClusters support distributed queue subscriptions just like today. However, we have added selection criteria that will favor queue subscribers in a local cluster to the publisher, and only cross a gateway connection if no local cluster queue subscribers for a given group are available. We feel this is a powerful feature on top of what distributed queues give us already with transparent horizontal scalability. Combined with the recently introduced drain capabilities, allowing queue subscribers to exit a group without dropping any messages, this is an extremely powerful way to design scalable service endpoints for modern systems. This also provides zero configuration and high availability failover across multiple locations - entirely transparent to clients..\nSystem Account\nWith NATS 2.0, NATS servers can now send and receive messages themselves. Prior to 2.0, NATS could only send and receive messages on behalf of connected clients. NATS servers now can generate events on things like connect and disconnect events and can receive messages and respond to requests. This is exciting for the team as we can now enable many things that were only possible before with protocol changes. In addition, internal messaging is bound to an account just like all users are in NATS 2.0. So all of the security, sharing of stream and services and mapping of subject spaces applies equally to system accounts as it does to any other user and account. Synadiaโ€™s NGS system uses system accounts to enforce limits globally and generate events that allow us to track usage. It also allows push-based updates in our decentrally managed system, described below.\nDecentralized Management\nAs systems get larger, management through config files only becomes challenging and brittle. With the introduction of accounts and superclusters, we wanted to encourage large, shared NATS clusters that could power large organizations, even entire companies and possibly even a global utility. Config file-based management would not suffice.\nIn NATS 2.0 the system can be configured to be completely de-centrally managed. In addition to Nkeys (Ed25519) keys, we introduce JWTs (only signed by Nkeys) into our system and a hierarchy that would utilize a root of trust. In NATS 2.0, the system understands operators, accounts and users. Each one is represented by a JWT. The operator JWT is self-signed and is the only thing required to be configured for each server. Account owners have JWTs signed by an operator and then generate user JWTs which are self-contained in terms of identity and authorization.\nWhen a server receives a client connect request, the client presents its user JWT (signed by an account) and a signed nonce, generated by its private key. The server validates the user JWT, checks the signature and if all are valid, will then use a resolver to pull the account JWT based on the public key in the user JWT. It will then validate the account JWT and finally check that the account JWT was signed by a signing key owned by the operator for which the server was configured.\nThis allows a very scalable, yet very secure mechanism to allow rapid change of permissions, authentication, limits, etc. to a global shared NATS system.\nLeafNodes - The best of both worlds\nWe are also introducing leaf nodes. A leaf node is a NATS server or small NATS cluster, running in a designated mode, that will connect to another cluster/supercluster. It will securely and transparently bind to an account on the remote cluster, and bridge communications between local clients and those on the remote cluster. This allows existing clients and systems to integrate with NATS 2.0 systems with increased security, accounts, and sharing all with no changes to an existing NATS application. For instance, we could run a leaf node server that allows existing applications with their own authorization to communicate with new clients that are secured by accounts and nkeys and utilize accounts for communication isolation and the sharing as the systems interfaces. With NATS 2.0 and a local leaf node server (a normal NATS 2.0 server) you could import streams and services and have them accessed by current applications with their own authentication (or none if physical security is in place). This means you can transparently use NGS, our global utility, and combine that with on-premise servers and clusters. You could securely and transparently use NGS to connect different regions or access meaningful streams and services as they become available on NGS. Leaf nodes utilizing accounts effectively create a DMZ between a local or private NATS deployment and NGS or external NATS clusters or superclusters.\n"},"nats_server/installation.html":{"url":"nats_server/installation.html","title":"Installing","keywords":"","body":"NATS Server Installation\nNATS philosophy is simplicity. Installation is just decompression a zip file and copying the binary to an appropiate directory; you can also use your favorite package manager.\nInstalling via a Package Manager\nOn Windows:\n> choco install nats-server\nOn Mac OS:\n> brew install nats-server\nVia Docker:\n> docker pull nats-server:latest\nInstalling A Release Build\nYou can find the latest release of nats-server here.\nSimply 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:\n> 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\n\n> unzip nats-server.zip -d nats-server\nArchive: nats-server.zip\n creating: nats-server-v2.0.0-darwin-amd64/\n inflating: nats-server-v2.0.0-darwin-amd64/README.md\n inflating: nats-server-v2.0.0-darwin-amd64/LICENSE\n inflating: nats-server-v2.0.0darwin-amd64/nats-server\n\n> cp nats-server-v2.0.0darwin-amd64/nats-server /usr/local/bin\nInstalling from the source\nIf you have go installed, installing the binary is easy:\n> go get github.com/nats-io/nats-server\nThis mechanism will install a build of master, 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. \nTesting Your Installation\nTo test your installation (provided the executable is visible to your shell):\n> nats-server\n[41634] 2019/05/13 09:42:11.745919 [INF] Starting nats-server version 2.0.0\n[41634] 2019/05/13 09:42:11.746240 [INF] Listening for client connections on 0.0.0.0:4222\n...\n[41634] 2019/05/13 09:42:11.746249 [INF] Server id is NBNYNR4ZNTH4N2UQKSAAKBAFLDV3PZO4OUYONSUIQASTQT7BT4ZF6WX7\n[41634] 2019/05/13 09:42:11.746252 [INF] Server is ready\n"},"nats_server/running.html":{"url":"nats_server/running.html","title":"Running","keywords":"","body":"Running\nThe nats-server has many command line options. To get started, you don't have to specify anything.\nIn the absence of any flags, the NATS server will start listening for NATS client connections on port 4222.\nBy default, security is not enabled.\nStandalone\nWhen the server starts it will print some information including where the server is listening for client connections:\n> nats-server\n[41634] 2019/05/13 09:42:11.745919 [INF] Starting nats-server version 2.0.0\n[41634] 2019/05/13 09:42:11.746240 [INF] Listening for client connections on 0.0.0.0:4222\n...\n[41634] 2019/05/13 09:42:11.746249 [INF] Server id is NBNYNR4ZNTH4N2UQKSAAKBAFLDV3PZO4OUYONSUIQASTQT7BT4ZF6WX7\n[41634] 2019/05/13 09:42:11.746252 [INF] Server is ready\nDocker\nIf you are running your NATS server in a docker container:\n> docker run -p 4222:4222 -ti nats:latest\n[1] 2019/05/13 14:55:11.981434 [INF] Starting nats-server version 2.0.0\n...\n[1] 2019/05/13 14:55:11.981545 [INF] Starting http monitor on 0.0.0.0:8222\n[1] 2019/05/13 14:55:11.981560 [INF] Listening for client connections on 0.0.0.0:4222\n[1] 2019/05/13 14:55:11.981565 [INF] Server is ready\n[1] 2019/05/13 14:55:11.982492 [INF] Listening for route connections on 0.0.0.0:6222\n...\nMore information on containerized NATS is available here.\n"},"nats_server/windows_srv.html":{"url":"nats_server/windows_srv.html","title":"Window Service","keywords":"","body":"Windows Service\nThe NATS server supports running as a Windows service. In fact, this is the recommended way of running NATS on Windows. There is currently no installer and instead users should use sc.exe to install the service:\nsc.exe create nats-server binPath= \"%NATS_PATH%\\nats-server.exe [nats-server flags]\"\nsc.exe start nats-server\n\nThe above will create and start a nats-server service. Note that the nats-server flags should be passed in when creating the service. This allows for running multiple NATS server configurations on a single Windows server by using a 1:1 service instance per installed NATS server service. Once the service is running, it can be controlled using sc.exe or nats-server.exe --signal:\nREM Reload server configuration\nnats-server.exe --signal reload\n\nREM Reopen log file for log rotation\nnats-server.exe --signal reopen\n\nREM Stop the server\nnats-server.exe --signal stop\n\nThe above commands will default to controlling the nats-server service. If the service is another name, it can be specified:\nnats-server.exe --signal stop=\n\nFor a complete list of signals, see process signaling.\n"},"nats_server/clients.html":{"url":"nats_server/clients.html","title":"Clients","keywords":"","body":"NATS Clients\nThe nats-server doesn't come bundled with any clients. But most client libraries come with tools that allow you to publish, subscribe, send requests and reply messages.\nIf you have a client library installed you can try using a bundled client. Otherwise you can easily install some clients.\nIf you have Go installed:\n> go get https://github.com/nats-io/go-nats-examples/tools/nats-pub\n> go get https://github.com/nats-io/go-nats-examples/tools/nats-sub\nOr download a zip file\nYou can install pre-built binaries from the go-nats-examples repo\nTesting your setup\nOpen a terminal and start a nats-server:\n> nats-server\n[29670] 2019/05/16 08:45:59.836809 [INF] Starting nats-server version 2.0.0\n[29670] 2019/05/16 08:45:59.836889 [INF] Git commit [not set]\n[29670] 2019/05/16 08:45:59.837161 [INF] Listening for client connections on 0.0.0.0:4222\n[29670] 2019/05/16 08:45:59.837168 [INF] Server id is NAYH35Q7ROQHLQ3K565JR4OPTJGO5EK4FJX6KX5IHHEPLQBRSYVWI2NO\n[29670] 2019/05/16 08:45:59.837170 [INF] Server is ready\nOn another terminal start session start a subscriber:\n> nats-sub \">\"\nListening on [>]\nNote that when the client connected, the server didn't log anything interesting because server output is fairly quiet unless something interesting happens.\nTo make the server output more lively, you can specify the -V flag to enable logging of server protocol tracing messages. Go ahead and +c the process running the server, and restart the server with the -V flag:\n> nats-server -V\n[29785] 2019/05/16 08:46:12.731278 [INF] Starting nats-server version 2.0.0\n[29785] 2019/05/16 08:46:12.731347 [INF] Git commit [not set]\n[29785] 2019/05/16 08:46:12.731488 [INF] Listening for client connections on 0.0.0.0:4222\n[29785] 2019/05/16 08:46:12.731493 [INF] Server id is NCEOJJ5SBJKUTMZEDNU3NBPJSLJPCMQJUIQIWKFHWE5DPETJKHX2CO2Y\n[29785] 2019/05/16 08:46:12.731495 [INF] Server is ready\n[29785] 2019/05/16 08:46:13.467099 [TRC] 127.0.0.1:49805 - cid:1 - > [PONG]\nIf you had created a subscriber, you should notice output on the subscriber telling you that it diesconnected, and reconnected. The server output above is more interesting. You can see the subscriber send a CONNECT protocol message, and a PING which was responded to by the server with a PONG.\n\nYou can learn more about the NATS protocol here, but more intersting than the protocol description is an interactive demo.\n\nOn a third terminal, publish your first message:\n> nats-pub hello world\nPublished [hello] : 'world'\nOn the subscriber window you should see:\n[#1] Received on [hello]: 'world'\nTesting Against a Remote Server\nIf the NATS server was running in a different machine or a different port, you'll have to specify that to the client by specifying a NATS URL. NATS urls take the form of: nats://: and tls://:. URLs with a tls protocol sport a secured TLS connection.\n> nats-sub -s nats://server:port \">\"\nIf you want to try on a remote server, the NATS team maintains a demo server you can reach at demo.nats.io.\n> nats-sub -s nats://demo.nats.io \">\"\n"},"nats_server/flags.html":{"url":"nats_server/flags.html","title":"Flags","keywords":"","body":"Flags\nThe NATS server has many flags to customize its behaviour without having to write a configuration file.\nThe configuration flags revolve around:\n\nServer Options\nLogging\nAuthorization\nTLS Security\nClustering\nInformation\n\nServer Options\n\n\n\nFlag\nDescription\n\n\n\n\n-a, --addr\nHost address to bind to (default: 0.0.0.0 - all interfaces).\n\n\n-p, --port\nNATS client port (default: 4222).\n\n\n-P, --pid\nFile to store the process ID (PID).\n\n\n-m, --http_port\nHTTP port for monitoring dashboard (exclusive of --https_port).\n\n\n-ms, --https_port\nHTTPS port monitoring for monitoring dashboard (exclusive of --http_port).\n\n\n-c, --config\nPath to NATS server configuration file.\n\n\n-sl, --signal\nSend a signal to nats-server process. See process signaling.\n\n\n--client_advertise\nClient HostPort to advertise to other servers.\n\n\n-t\nTest configuration and exit\n\n\n\nAuthentication Options\nThe following options control very simple authentication:\n\n\n\nFlag\nDescription\n\n\n\n\n--user\nRequired username for connections (exclusive of --token).\n\n\n--pass\nRequired password for connections (exclusive of --token).\n\n\n--auth\nRequired authorization token for connections (exclusive of --user and --password).\n\n\n\nSee token authentication, and username/password for more information.\nLogging Options\nThe following flags are available on the server to configure logging:\n\n\n\nFlag\nDescription\n\n\n\n\n-l, --log\nFile to redirect log output\n\n\n-T, --logtime\nSpecify -T=false to disable timestamping log entries\n\n\n-s, --syslog\nLog to syslog or windows event log\n\n\n-r, --remote_syslog\nThe syslog server address, like udp://localhost:514\n\n\n-D, --debug\nEnable debugging output\n\n\n-V, --trace\nEnable protocol trace log messages\n\n\n-DV\nEnable both debug and protocol trace messages\n\n\n\nYou can read more about logging configuration here.\nTLS Options\n\n\n\nFlag\nDescription\n\n\n\n\n--tls\nEnable TLS, do not verify clients\n\n\n--tlscert\nServer certificate file\n\n\n--tlskey\nPrivate key for server certificate\n\n\n--tlsverify\nEnable client TLS certificate verification\n\n\n--tlscacert\nClient certificate CA for verification\n\n\n\nCluster Options\nThe following flags are available on the server to configure clustering:\n\n\n\nFlag\nDescription\n\n\n\n\n--routes\nComma separated list of cluster URLs to solicit and connect\n\n\n--cluster\nCluster URL for clustering requests\n\n\n--no_advertise\nDo not advertise known cluster information to clients\n\n\n--cluster_advertise\nCluster URL to advertise to other servers\n\n\n--connect_retries\nFor implicit routes, number of connect retries\n\n\n\nYou can read more about clustering configuration here.\nCommon Options\n\n\n\nFlag\nDescription\n\n\n\n\n-h, --help\nShow this message\n\n\n-v, --version\nShow version\n\n\n--help_tls\nTLS help\n\n\n\n"},"nats_server/configuration.html":{"url":"nats_server/configuration.html","title":"Configuration","keywords":"","body":"Configuration File Format\nWhile the NATS server has many flags that allow for simple testing of features, the NATS server products provide a flexible configuration format that combines the best of traditional formats and newer styles such as JSON and YAML.\nThe NATS configuration file supports the following syntax:\n\nLines can be commented with # and //\nValues can be assigned to properties with:\nEquals sign: foo = 2\nColon: foo: 2\nWhitespace: foo 2\n\n\nArrays are enclosed in brackets: [\"a\", \"b\", \"c\"]\nMaps are enclosed in braces: {foo: 2}\nMaps can be assigned with no key separator\nSemicolons can be used as terminators\n\nStrings and Numbers\nThe configuration parser is very forgiving, as you have seen:\n\nvalues can be a primitive, or a list, or a map\nstrings and numbers typically do the right thing\n\nString values that start with a number can create issues. To force such values as strings, simply quote them.\nBAD Config: \nlisten: 127.0.0.1:4222\nauthorization: {\n # BAD!\n token: 3secret\n}\nFixed Config:\nlisten: 127.0.0.1:4222\nauthorization: {\n token: \"3secret\"\n}\nVariables\nServer configurations can specify variables. Variables allow you to reference a value from one or more sections in the configuration. \nVariables:\n\nAre block scoped\nAre referenced with a $ prefix.\nCan be resolved from environment variables having the same name\n\n\nIf the environment variable value begins with a number you may have trouble resolving it depending on the server version you are running.\n\n# Define a variable in the config\nTOKEN: \"secret\"\n\n# Reference the variable\nauthorization {\n token: $TOKEN\n}\nA similar configuration, but this time, the value is in the environment:\n# TOKEN should be defined in the environment\nauthorization {\n token: $TOKEN\n}\nexport TOKEN=\"hello\"; nats-server -c /config/file\nInclude Directive\nThe include directive allows you to split a server configuration into several files. This is useful for separating configuration into chunks that you can easily reuse between different servers.\nIncludes must use relative paths, and are relative to the main configuration (the one specified via the -c option):\nserver.conf:\nlisten: 127.0.0.1:4222\ninclude ./auth.conf\n\nNote that include is not followed by = or :, as it is a directive.\n\nauth.conf:\nauthorization: {\n token: \"f0oBar\"\n}\n> nats-server -c server.conf\nConfiguration Properties\n\n\n\nProperty\nDescription\n\n\n\n\nauthorization\nconfiguration map for client authentication/authorization\n\n\ncluster\nconfiguration map for clustering configuration\n\n\ndebug\nif true enable debug log messages\n\n\ngateway\nGateway configuration map\n\n\nhost\nhost for client connections\n\n\nhttp_port\nhttp port for server monitoring\n\n\nhttps_port\nhttps port for server monitoring\n\n\nleafnode\nLeafnode configuration map\n\n\nlisten\nhost/port for client connections\n\n\nmax_connections\nMaximum number of active client connections\n\n\nmax_control_line\nMaximum length of a protocol line (including subject length)\n\n\nmax_payload\nMaximum number of bytes in a message payload\n\n\nmax_subscriptions\nMaximum numbers of subscriptions for a client connection\n\n\noperator\npath to an operator JWT\n\n\nport\nport for client connections\n\n\nresolver\nResolver type MEMORY or URL for account JWTs\n\n\ntls\nconfiguration map for tls for client and http monitoring\n\n\ntrace\nif true enable protocol trace log messages\n\n\nwrite_deadline\nMaximum number of seconds the server will block when writing a to a client (slow consumer)\n\n\n\nConfiguration Reloading\nA server can reload most configuration changes without requiring a server restart or clients to disconnect by sending the nats-server a signal:\n> nats-server --signal reload\n"},"nats_server/securing_nats.html":{"url":"nats_server/securing_nats.html","title":"Securing NATS","keywords":"","body":"Securing NATS\nThe nats-server provides several forms of security:\n\nConnections can be encrypted with TLS\nClient connections can require authentication\nClients can require authorization for subjects the publish or subscribe to\n\n"},"nats_server/tls.html":{"url":"nats_server/tls.html","title":"Enabling TLS","keywords":"","body":"TLS Configuration\nThe NATS server uses modern TLS semantics to encrypt client, route and monitoring connections.\nServer configuration revolves around a tls map, which has the following properties:\n\n\n\nProperty\nDescription\n\n\n\n\nca_file\nTLS certificate authority file.\n\n\ncert_file\nTLS certificate file.\n\n\ncipher_suites\nWhen set, only the specified TLS cipher suites will be allowed. Values must match golang version used to build the server.\n\n\ncurve_preferences\nList of TLS cypher curves to use in order.\n\n\ninsecure\nSkip certificate verfication.\n\n\nkey_file\nTLS certificate key file.\n\n\ntimeout\nTLS handshake timeout in fractional seconds.\n\n\nverify_and_map\nIf true, require and verify client certificates and map certificate values for authentication purposes.\n\n\nverify\nIf true, require and verify client certificates.\n\n\n\nThe simplest configuration:\ntls: {\n cert_file: \"./server-cert.pem\"\n key_file: \"./server-key.pem\"\n}\nOr by using server options:\n> nats-server --tls --tlscert=./server-cert.pem --tlskey=./server-key.pem\n[21417] 2019/05/16 11:21:19.801539 [INF] Starting nats-server version 2.0.0\n[21417] 2019/05/16 11:21:19.801621 [INF] Git commit [not set]\n[21417] 2019/05/16 11:21:19.801777 [INF] Listening for client connections on 0.0.0.0:4222\n[21417] 2019/05/16 11:21:19.801782 [INF] TLS required for client connections\n[21417] 2019/05/16 11:21:19.801785 [INF] Server id is ND6ZZDQQDGKYQGDD6QN2Y26YEGLTH6BMMOJZ2XJB2VASPVII3XD6RFOQ\n[21417] 2019/05/16 11:21:19.801787 [INF] Server is ready\nNotice that the log indicates that the client connections will be required to use TLS. If you run the server in Debug mode with -D or -DV, the logs will show the cipher suite selection for each connected client:\n[22242] 2019/05/16 11:22:20.216322 [DBG] 127.0.0.1:51383 - cid:1 - Client connection created\n[22242] 2019/05/16 11:22:20.216539 [DBG] 127.0.0.1:51383 - cid:1 - Starting TLS client connection handshake\n[22242] 2019/05/16 11:22:20.367275 [DBG] 127.0.0.1:51383 - cid:1 - TLS handshake complete\n[22242] 2019/05/16 11:22:20.367291 [DBG] 127.0.0.1:51383 - cid:1 - TLS version 1.2, cipher suite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nWhen a tls section is specified at the root of the configuration it also affects the monitoring port if https_port option is specified. Other sections such as cluster can specify a tls block.\nTLS Timeout\nThe timeout setting enables you to control the amount of time that a client is allowed to upgrade its connection to tls. If your clients are experiencing disconnects during TLS handshake, you'll want to increase the value. However if you do be aware that a long timeout exposes your server to attacks where a client doesn't upgrade to TLS and thus consumes resources. Conversely, if you reduce the TLS timeout too much, you are likely to experience handshake errors.\ntls: {\n cert_file: \"./server-cert.pem\"\n key_file: \"./server-key.pem\"\n # clients will fail to connect (value is too low)\n timeout: 0.0001\n}\n"},"nats_server/auth_intro.html":{"url":"nats_server/auth_intro.html","title":"Authentication","keywords":"","body":"Authentication\nThe NATS server provides various ways of authenticating clients:\n\nToken Authentication\nUsername/Password credentials\nTLS Certificate\nNKEY with Challenge\nJWTs with Challenge\n\nAuthentication deals with allowing a NATS client to connect to the server.\nWith the exception of JWT authentication, authentication and authorization is configured in the authorization section of the configuration.\nAuthorization Map\nThe authorization block provides authentication configuration as well as authorization:\n\n\n\nProperty\nDescription\n\n\n\n\ntoken\nSpecifies a global token that can be used to authenticate to the server (exclusive of user and password)\n\n\nuser\nSpecifies a single global user name for clients to the server (exclusive of token)\n\n\npassword\nSpecifies a single global password for clients to the server (exclusive of token)\n\n\nusers\nA list of user configuration maps\n\n\ntimeout\nMaximum number of seconds to wait for client authentication\n\n\n\nFor multiple username and password credentials, specify a users list.\nUser Configuration Map\nA user configuration map specifies credentials and permissions options for a single user:\n\n\n\nProperty\nDescription\n\n\n\n\nuser\nusername for client authentication\n\n\npassword\npassword for the user entry\n\n\nnkey\npublic nkey identifying an user\n\n\npermissions\npermissions map configuring subjects accessible to the user\n\n\n\n"},"nats_server/tokens.html":{"url":"nats_server/tokens.html","title":"Tokens","keywords":"","body":"Token Authentication\nToken authentication is a string that if provided by a client, allows it to connect. It is the simplest authentication provided by the NATS server. \nTo use token authentication, you can just specify an authorization section with the token property set:\nauthorization {\n token: \"s3cr3t\"\n}\nToken authentication can be used in the authorization section for clients and clusters.\nOr start the server with the --auth flag:\n> nats-server --auth s3cr3t\nA client can easily connect by specifying the server URL:\n> nats-sub -s nats://s3cr3t@localhost:4222 \">\"\nListening on [>]\nBcrypted Tokens\nTokens can be bcrypted enabling an additional layer of security, as the clear-text version of the token would not be persisted on server configuration file.\nYou can generate bcrypted tokens and passwords using the mkpasswd tool:\n> mkpasswd\npass: dag0HTXl4RGg7dXdaJwbC8\nbcrypt hash: $2a$11$PWIFAL8RsWyGI3jVZtO9Nu8.6jOxzxfZo7c/W0eLk017hjgUKWrhy\nHere's a simple configuration file:\nauthorization {\n token: \"$2a$11$PWIFAL8RsWyGI3jVZtO9Nu8.6jOxzxfZo7c/W0eLk017hjgUKWrhy\"\n}\nThe client will still require the clear-text token to connect:\nnats-sub -s nats://dag0HTXl4RGg7dXdaJwbC8@localhost:4222 \">\"\nListening on [>]\n"},"nats_server/username_password.html":{"url":"nats_server/username_password.html","title":"Username/Password","keywords":"","body":"Username and Password\nYou can authenticate one or more clients using username and passwords. This enables you to have greater control on the management and issuing of credential secrets.\nFor a single user:\nauthorization: {\n user: a,\n password: b\n}\nYou can also specify a single username/password by:\n> nats-server --user a --pass b\nFor multiple users:\nauthorization: {\n users: [\n {user: a, password: b},\n {user: b, password: a}\n ]\n}\nBcrypted Passwords\nUsername/password also supports bcrypted passwords using the mkpasswd tool. Simply replace the clear text password with the bcrypted entries:\n> mkpasswd\nass: (Uffs#rG42PAu#Oxi^BNng\nbcrypt hash: $2a$11$V1qrpBt8/SLfEBr4NJq4T.2mg8chx8.MTblUiTBOLV3MKDeAy.f7u\nAnd on the configuration file:\nauthorization: {\n users: [\n {user: a, password: \"$2a$11$V1qrpBt8/SLfEBr4NJq4T.2mg8chx8.MTblUiTBOLV3MKDeAy.f7u\"},\n ... \n ]\n}\nReloading a Configuration\nAs you add/remove passwords from the server configuration file, you'll want your changes to take effect. To reload without restarting the server and disconnecting clients, simply do:\n> nats-server --signal reload\n"},"nats_server/tls_mutual_auth.html":{"url":"nats_server/tls_mutual_auth.html","title":"TLS Authentication","keywords":"","body":"Client TLS Mutual Authentication\nThe server can require TLS certificates from a client. When required, you can use the certificates to:\n\nValidate the client certificate matches a known or trusted CA\nExtract information from a trusted certificate to provide authentication\n\nValidating a Client Certificate\nThe server can verify a client certificate using CA certificate. To require verification, simply add the option verify the TLS configuration section as follows:\ntls {\n cert_file: \"./configs/certs/server-cert.pem\"\n key_file: \"./configs/certs/server-key.pem\"\n ca_file: \"./configs/certs/ca.pem\"\n verify: true\n}\nOr via the command line:\n> ./nats-server --tlsverify --tlscert=./test/configs/certs/server-cert.pem --tlskey=./test/configs/certs/server-key.pem --tlscacert=./test/configs/certs/ca.pem\n\nThis option simply verifies the client's certificate has been signed by the CA specified in the ca_file option. \nMapping Client Certificates To A User\nIn addition to verifying that a client certificate was issued by a specified CA, you can use information encoded in the certificate to authenticate a client. The client wouldn't have to provide or track usernames or passwords.\nTo have TLS Mutual Authentication map certificate attributes to the users identity use verify_and_map as shown as follows:\ntls {\n cert_file: \"./configs/certs/server-cert.pem\"\n key_file: \"./configs/certs/server-key.pem\"\n ca_file: \"./configs/certs/ca.pem\"\n # Require a client certificate and map user id from certificate\n verify_and_map: true\n}\n\nNote that verify was changed to verify_and_map.\n\nThere are two options for certificate attributes that can be mapped to user names. The first is the email address in the Subject Alternative Name (SAN) field of the certificate. While generating a certificate with this attribute is outside the scope of this document, you can view one with openssl:\n$ openssl x509 -noout -text -in test/configs/certs/client-id-auth-cert.pem\nCertificate:\n...\n X509v3 extensions:\n X509v3 Subject Alternative Name:\n DNS:localhost, IP Address:127.0.0.1, email:derek@nats.io\n X509v3 Extended Key Usage:\n TLS Web Client Authentication\n...\nThe configuration to authorize this user would be as follows:\nauthorization {\n users = [\n {user: \"derek@nats.io\"}\n ]\n}\n\nNote: This configuration only works for the first email address if there are multiple emails in the SAN field.\n\nThe second option is to use the RFC 2253 Distinguished Names syntax from the certificate subject as follows:\n$ openssl x509 -noout -text -in test/configs/certs/tlsauth/client2.pem\nCertificate:\n Data:\n...\n Subject: OU=CNCF, CN=example.com\n...\nThe configuration to authorize this user would be as follows:\nauthorization {\n users = [\n {user: \"CN=example.com,OU=CNCF\"}\n ]\n}\nTLS Timeout\nTLS timeout is described here.\n"},"nats_server/nkey_auth.html":{"url":"nats_server/nkey_auth.html","title":"NKeys","keywords":"","body":"NKey Authentication\nNKeys are a new highly secure public-key signature system based on Ed25519.\nWith NKeys the server can verify identities without ever storing secrets on the server. The authentication system works by requiring a connecting client to provide its public key and digitally sign a challenge with its private key. The server generates a random challenge with every connection request, making it immune to playback attacks. The generated signature is validated against the provided public key, thus proving the identity of the client. If the public key is known to the server, authentication succeeds.\n\nNKey is an awesome replacement for token authentication, because a connecting client will have to prove it controls the private key for the authorized public key.\n\nTo generate nkeys, you'll need the nk tool.\nGenerating NKeys and Configuring the Server\nTo generate a User NKEY:\n> nk -gen user -pubout\nSUACSSL3UAHUDXKFSNVUZRF5UHPMWZ6BFDTJ7M6USDXIEDNPPQYYYCU3VY\nUDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4\nThe first output line starts with the letter S for Seed. The second letter U stands for User. Seeds are private keys; you should treat them as secrets and guard them with care.\nThe second line starts with the letter U for User, and is a public key which can be safely shared.\nTo use nkey authentication, add a user and set the nkey property to the public key of the user you want to authenticate:\nauthorization: {\n users: [\n { nkey: UDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4 }\n ]\n}\n\nNote that the user section sets the nkey property (user/password/token properties are not needed). Add permission sections as required.\nClient Configuration\nNow that you have a user nkey let's configure a client to use it for authentication. As an example, here are the connect options for the node client:\nconst NATS = require(โ€˜natsโ€˜);\nconst nkeys = require('ts-nkeysโ€™);\n\nconst nkey_seed = โ€˜SUACSSL3UAHUDXKFSNVUZRF5UHPMWZ6BFDTJ7M6USDXIEDNPPQYYYCU3VYโ€™;\nconst nc = NATS.connect({\n port: PORT,\n nkey: 'UDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4',\n sigCB: function (nonce) {\n // client loads seed safely from a file\n // or some constant like `nkey_seed` defined in\n // the program\n const sk = nkeys.fromSeed(Buffer.from(nkey_seed));\n return sk.sign(nonce);\n }\n});\n...\n\nThe client provides a function that it uses to parse the seed (the private key) and sign the connection challenge.\nOther NATS tooling such as nats-pub and nats-sub can directly use nkeys:\nnats-sub -nkey /path/to/file/storing/seed \">\"\n\nFor examples using other supported clients, please visit\nour documentation portal\n"},"nats_server/jwt_auth.html":{"url":"nats_server/jwt_auth.html","title":"Accounts","keywords":"","body":"Accounts\nAccounts expand on the NKEY authentication foundation and recasts client authentication and authorization from a server configuration to a distributed and delegated authentication and authorization model.\nWith other authentication mechanisms, all clients can publish and subscribe to anything unless explicitly configured otherwise. To protect clients and information, you have to carefully carve the subject space and permission clients.\nEach account is isolated from other accounts, thus enabling multi-tenancy in the server. With accounts, the subject space is not globally shared, greatly simplifying the messaging environment. Instead of devising complicated subject name carving patterns, clients can use short subjects without explicit authorization rules.\nMessaging exchange between different accounts is enabled by exporting streams and services from one account and importing them into another. When an export is sensitive, the export can require a constraint that authorization for its import be provided. Thus it is easy to audit exporters and limit importers. Best of all, each account is in full control of what is exported or imported and from whom.\n\nWhile the name account implies one or more users, it is much simpler and enlightening to think of one account as a messaging container for one application. Users in the account are simply the minimum number of services that must work together to provide some functionality. \nIn simpler terms, more accounts with few (even one) clients is a better design topology than a large account with many users with complex authorization configuration.\n\nAccounts leverage JSON Web Tokens (JWT) to describe the various entities supported. When a client connects, servers query for account JWTs and validate a trust chain. Users are not directly tracked by the server, but rather verified as belonging to an account. This enables the managing of users without requiring server configuration updates.\nEffectively, Accounts provide for a distributed configuration paradigm. Previously each user (or client) needed to be known and authorized a priori in the serverโ€™s configuration requiring an administrator to modify and update server configurations. Accounts eliminate these chores.\nJSON Web Tokens\nJSON Web Tokens (JWT) are an open and industry standard RFC7519 method for representing claims securely between two parties.\nClaims are a fancy way of asserting information on a subject. In this context, a subject is the entity being described (not a messaging subject). Standard JWT claims are typically digitally signed and verified.\nNATS further restricts JWTs by requiring that JWTs be:\n\nDigitally signed always and only using Ed25519. \nNATS adopts the convention that all Issuer and Subject fields in a JWT claim must be a public NKEY. \nIt also introduces type requirements into claims, enabling the pairing of specific roles matching those supported by NKeys.\n\nNKey Roles\nNKey Roles are:\n\nOperators\nAccounts\nUsers\n\nRoles are hierarchical and form a chain of trust. Operators issue Accounts which in turn issue Users. Servers trust specific Operators. If an account is issued by an operator that is trusted, account users are trusted.\nThe Authentication Process\nWhen a User connects to a server, it presents a JWT issued by its Account. The user proves its identity by signing a server-issued cryptographic challenge with its private key. The signature verification validates that the signature is attributable to the user's public key. Next, the server retrieves the associated account JWT that issued the user. It verifies the User issuer matches the referenced account. Finally, the server checks that a trusted Operator issued the Account, completing the trust chain verification. \nThe Authorization Process\nFrom an authorization point of view, the Account provides information on messaging subjects that are imported from other accounts (including any ancillary related authorization) as well as messaging subjects exported to other accounts. Accounts can also bear limits, such as the maximum number of connections they may have. A user JWT can express restrictions on the messaging subjects that it can publish or subscribe to.\nWhen a new user is added to an account, the account configuration need not change, as each user can and should have its own user JWT that can be verified by simply resolving its parent account.\nJWTs and Privacy\nOne crucial detail to keep in mind is that while in other systems JWTs are used as sessions or proof of authentication, NATS JWTs are only used as configuration describing:\n\nthe public ID of the entity\nthe public ID of the entity that issued it\ncapabilities of the entity\n\nAuthentication is a public key cryptographic process โ€” a client signs a nonce proving identity while the trust chain and configuration provides the authorization.\nThe server is never aware of private keys but can verify that a signer or issuer indeed matches a specified or known public key.\nLastly, all NATS JWTs (Operators, Accounts, Users and others) are expected to be signed using the Ed25519 algorithm. If they are not, they are rejected by the system.\nSharing Between Accounts\nWhile accounts provide isolation, there are many cases where you want to be able to consume messages produced by one account in another. There are two kinds of shares that an account can export:\n\nStreams\nServices\n\nStreams are messages published by a foreign account; Subscribers in an importing account can receive messages from a stream exported by another.\nServices are endpoints exported by a foreign account; Requesters importing the service can publish requests to the exported endpoint. \nStreams and Services can be public; Public exports can be imported by any account. Or they can be private. Private streams and services require an authorization token from the exporting account that authorizes the foreign account to import the stream or service.\nAn importing account can remap the subject where a stream subscriber will receive messages or where a service requestor can make requests. This enables the importing account to simplify their subject space.\nExports and imports from an account are explicit, and they are visible in the account's JWT. For private exports, the import will embed an authorization token or a URL storing the token. Imports and exports make it easy to audit where data is coming or going.\nConfiguration\nEntity JWT configuration is done using the nsc tool. The basic steps include:\n\nCreation of an operator JWT\nConfiguring an Account Server\nSetting up the NATS server to resolve Accounts\n\nAfter that, nsc is used to create and edit accounts and users.\n"},"nats_server/auth_timeout.html":{"url":"nats_server/auth_timeout.html","title":"Authentication Timeout","keywords":"","body":"Authentication Timeout\nMuch like the tls timeout option, authentication can specify a timeout value.\nIf a client doesn't authenticate to the server within the specified time, the server disconnects the server to prevent abuses.\nTimeouts are specified in seconds (and can be fractional).\nAs with TLS timeouts, long timeouts can be an opportunity for abuse. If setting the authentication timeout, it is important to note. that it should be longer than the tls timeout option, as the authentication timeout includes the TLS upgrade time.\nauthorization: {\n timeout: 3\n users: [\n {user: a, password b},\n {user: b, password a}\n ]\n}\n"},"nats_server/authorization.html":{"url":"nats_server/authorization.html","title":"Authorization","keywords":"","body":"Authorization\nThe NATS server supports authorization using subject-level permissions on a per-user basis. Permission-based authorization is available withmulti-user authentication via the users list.\nEach permission specifies the subjects the user can publish to and subscribe to. The parser is generous at understanding what the intent is, so both arrays and singletons are processed. For more complex configuation you can specify a permission object which explicetly allows or denies subjects. The specified subjects can specify wildcards. Permissions can make use of variables.\nYou configure authorization by creating a permissions entry in the authorization object.\nPermissions Configuration Map\nThe permissions map specify subjects that can be subscribed to or published by the specified client.\n\n\n\nProperty\nDescription\n\n\n\n\npublish\nsubject, list of subjects, or permission map the client can publish\n\n\nsubscribe\nsubject, list of subjects, or permission map the client can publish\n\n\n\nPermission Map\nThe permission map provides additional properties for configuring a permissions map. Instead of providing a list of subjects that are allowed, the permission map allows you to explicitely list subjects you want toallow or deny:\n\n\n\nProperty\nDescription\n\n\n\n\nallow\nList of subject names that are allowed to the client\n\n\ndeny\nList of subjects that are denied to the client\n\n\n\nImportant Note NATS Authorizations are whitelist only, meaning in order to not break request/reply patterns you need to add rules as above with Alice and Bob for the _INBOX.> pattern. If an unauthorized client publishes or attempts to subscribe to a subject that has not been whitelisted, the action fails and is logged at the server, and an error message is returned to the client.\nExample\nHere is an example authorization configuration that uses variables which defines four users, three of whom are assigned explicit permissions.\nauthorization {\n ADMIN = {\n publish = \">\"\n subscribe = \">\"\n }\n REQUESTOR = {\n publish = [\"req.a\", \"req.b\"]\n subscribe = \"_INBOX.>\"\n }\n RESPONDER = {\n subscribe = [\"req.a\", \"req.b\"]\n publish = \"_INBOX.>\"\n }\n DEFAULT_PERMISSIONS = {\n publish = \"SANDBOX.*\"\n subscribe = [\"PUBLIC.>\", \"_INBOX.>\"]\n }\n users = [\n {user: admin, password: $ADMIN_PASS, permissions: $ADMIN}\n {user: client, password: $CLIENT_PASS, permissions: $REQUESTOR}\n {user: service, password: $SERVICE_PASS, permissions: $RESPONDER}\n {user: other, password: $OTHER_PASS}\n ]\n}\n\n\nDEFAULT_PERMISSIONS is a special permissions name. If defined, it applies to all users that don't have specific permissions set.\n\n\nadmin has ADMIN permissions and can publish/subscribe on any subject. We use the wildcard > to match any subject.\n\nclient is a REQUESTOR and can publish requests on subjects req.a or req.b, and subscribe to anything that is a response (_INBOX.>).\n\nservice is a RESPONDER to req.a and req.b requests, so it needs to be able to subscribe to the request subjects and respond to client's that are able to publish requests to req.a and req.b. The reply subject subject is an inbox. Typically inboxes start with the prefix _INBOX. followed by a generated string. The _INBOX.> subject matches all subjects that start with _INBOX..\n\nother has no permissions granted and therefore inherits the default permission set. You set the inherited default permissions by assigning them to the default_permissions entry inside of the authorization configuration block.\n\n\n\nNote that in the above example, any client with permissions to subscribe to _INBOX.> is able to receive all responses published. More sensitive installations will want to add or subset the prefix to further limit what a client can subscribe to. Alternatively Accounts allow complete isolation limiting what members of an account can see.\n\n"},"nats_server/clustering.html":{"url":"nats_server/clustering.html","title":"Clustering","keywords":"","body":"NATS Server Clustering\nNATS supports running each server in clustered mode. You can cluster servers together for high volume messaging systems and resiliency and high availability. Clients are cluster-aware.\nNote that NATS clustered servers have a forwarding limit of one hop. This means that each nats-server instance will only forward messages that it has received from a client to the immediately adjacent nats-server instances to which it has routes. Messages received from a route will only be distributed to local clients. Therefore a full mesh cluster, or complete graph, is recommended for NATS to function as intended and as described throughout the documentation.\nCluster URLs\nIn addition to a port for listening for clients, nats-server can listen on a \"cluster\" URL (the -cluster option). Additional nats-server servers can then add that URL to their -routes argument to join the cluster. These options can also be specified in a config file, but only the command-line version is shown in this overview for simplicity.\nRunning with No Cluster\nnats-server -p 4222\n\n\nRunning a Simple Cluster\n# Server A on 10.10.0.1\nnats-server -p 4222 -cluster nats://10.10.0.1:5222\n\n# Server B on 10.10.0.2\nnats-server -p 4222 -cluster nats://10.10.0.2:5222 -routes nats://10.10.0.1:5222\n\n\n# Server A on 10.10.0.1\nnats-server -p 4222 -cluster nats://10.10.0.1:5222 -routes nats://10.10.0.2:5222\n\n# Server B on 10.10.0.2\nnats-server -p 4222 -cluster nats://10.10.0.2:5222 -routes nats://10.10.0.1:5222\n\nClients connecting to any server in the cluster will remain connected to the cluster even if the server it originally connected to is taken down, as long as at least a single server remains.\nCommand Line Options\nThe following cluster options are supported:\n--routes [rurl-1, rurl-2] Routes to solicit and connect\n--cluster nats://host:port Cluster URL for solicited routes\nWhen a NATS server routes to a specified URL, it will advertise its own cluster URL to all other servers in the route route effectively creating a routing mesh to all other servers. \nNote: when using the -routes option, you must also specify a -cluster option.\nClustering can also be configured using the server config file.\nThree Server Cluster Example\nThe following example demonstrates how to run a cluster of 3 servers on the same host. We will start with the seed server and use the -D command line parameter to produce debug information.\nnats-server -p 4222 -cluster nats://localhost:4248 -D\n\nAlternatively, you could use a configuration file, let's call it seed.conf, with a content similar to this:\n# Cluster Seed Node\n\nlisten: 127.0.0.1:4222\nhttp: 8222\n\ncluster {\n listen: 127.0.0.1:4248\n}\n\nAnd start the server like this:\nnats-server -config ./seed.conf -D\n\nThis will produce an output similar to:\n[75653] 2016/04/26 15:14:47.339321 [INF] Listening for route connections on 127.0.0.1:4248\n[75653] 2016/04/26 15:14:47.340787 [INF] Listening for client connections on 127.0.0.1:4222\n[75653] 2016/04/26 15:14:47.340822 [DBG] server id is xZfu3u7usAPWkuThomoGzM\n[75653] 2016/04/26 15:14:47.340825 [INF] server is ready\n\nIt is also possible to specify the hostname and port independently. At least the port is required. If you leave the hostname off it will bind to all the interfaces ('0.0.0.0').\ncluster {\n host: 127.0.0.1\n port: 4248\n}\n\nNow let's start two more servers, each one connecting to the seed server.\nnats-server -p 5222 -cluster nats://localhost:5248 -routes nats://localhost:4248 -D\n\nWhen running on the same host, we need to pick different ports for the client connections -p, and for the port used to accept other routes -cluster. Note that -routes points to the -cluster address of the seed server (localhost:4248).\nHere is the log produced. See how it connects and registers a route to the seed server (...GzM).\n[75665] 2016/04/26 15:14:59.970014 [INF] Listening for route connections on localhost:5248\n[75665] 2016/04/26 15:14:59.971150 [INF] Listening for client connections on 0.0.0.0:5222\n[75665] 2016/04/26 15:14:59.971176 [DBG] server id is 53Yi78q96t52QdyyWLKIyE\n[75665] 2016/04/26 15:14:59.971179 [INF] server is ready\n[75665] 2016/04/26 15:14:59.971199 [DBG] Trying to connect to route on localhost:4248\n[75665] 2016/04/26 15:14:59.971551 [DBG] 127.0.0.1:4248 - rid:1 - Route connection created\n[75665] 2016/04/26 15:14:59.971559 [DBG] 127.0.0.1:4248 - rid:1 - Route connect msg sent\n[75665] 2016/04/26 15:14:59.971720 [DBG] 127.0.0.1:4248 - rid:1 - Registering remote route \"xZfu3u7usAPWkuThomoGzM\"\n[75665] 2016/04/26 15:14:59.971731 [DBG] 127.0.0.1:4248 - rid:1 - Route sent local subscriptions\n\nFrom the seed's server log, we see that the route is indeed accepted:\n[75653] 2016/04/26 15:14:59.971602 [DBG] 127.0.0.1:52679 - rid:1 - Route connection created\n[75653] 2016/04/26 15:14:59.971733 [DBG] 127.0.0.1:52679 - rid:1 - Registering remote route \"53Yi78q96t52QdyyWLKIyE\"\n[75653] 2016/04/26 15:14:59.971739 [DBG] 127.0.0.1:52679 - rid:1 - Route sent local subscriptions\n\nFinally, let's start the third server:\nnats-server -p 6222 -cluster nats://localhost:6248 -routes nats://localhost:4248 -D\n\nAgain, notice that we use a different client port and cluster address, but still point to the same seed server at the address nats://localhost:4248:\n[75764] 2016/04/26 15:19:11.528185 [INF] Listening for route connections on localhost:6248\n[75764] 2016/04/26 15:19:11.529787 [INF] Listening for client connections on 0.0.0.0:6222\n[75764] 2016/04/26 15:19:11.529829 [DBG] server id is IRepas80TBwJByULX1ulAp\n[75764] 2016/04/26 15:19:11.529842 [INF] server is ready\n[75764] 2016/04/26 15:19:11.529872 [DBG] Trying to connect to route on localhost:4248\n[75764] 2016/04/26 15:19:11.530272 [DBG] 127.0.0.1:4248 - rid:1 - Route connection created\n[75764] 2016/04/26 15:19:11.530281 [DBG] 127.0.0.1:4248 - rid:1 - Route connect msg sent\n[75764] 2016/04/26 15:19:11.530408 [DBG] 127.0.0.1:4248 - rid:1 - Registering remote route \"xZfu3u7usAPWkuThomoGzM\"\n[75764] 2016/04/26 15:19:11.530414 [DBG] 127.0.0.1:4248 - rid:1 - Route sent local subscriptions\n[75764] 2016/04/26 15:19:11.530595 [DBG] 127.0.0.1:52727 - rid:2 - Route connection created\n[75764] 2016/04/26 15:19:11.530659 [DBG] 127.0.0.1:52727 - rid:2 - Registering remote route \"53Yi78q96t52QdyyWLKIyE\"\n[75764] 2016/04/26 15:19:11.530664 [DBG] 127.0.0.1:52727 - rid:2 - Route sent local subscriptions\n\nFirst a route is created to the seed server (...GzM) and after that, a route from ...IyE - which is the ID of the second server - is accepted.\nThe log from the seed server shows that it accepted the route from the third server:\n[75653] 2016/04/26 15:19:11.530308 [DBG] 127.0.0.1:52726 - rid:2 - Route connection created\n[75653] 2016/04/26 15:19:11.530384 [DBG] 127.0.0.1:52726 - rid:2 - Registering remote route \"IRepas80TBwJByULX1ulAp\"\n[75653] 2016/04/26 15:19:11.530389 [DBG] 127.0.0.1:52726 - rid:2 - Route sent local subscriptions\n\nAnd the log from the second server shows that it connected to the third.\n[75665] 2016/04/26 15:19:11.530469 [DBG] Trying to connect to route on 127.0.0.1:6248\n[75665] 2016/04/26 15:19:11.530565 [DBG] 127.0.0.1:6248 - rid:2 - Route connection created\n[75665] 2016/04/26 15:19:11.530570 [DBG] 127.0.0.1:6248 - rid:2 - Route connect msg sent\n[75665] 2016/04/26 15:19:11.530644 [DBG] 127.0.0.1:6248 - rid:2 - Registering remote route \"IRepas80TBwJByULX1ulAp\"\n[75665] 2016/04/26 15:19:11.530650 [DBG] 127.0.0.1:6248 - rid:2 - Route sent local subscriptions\n\nAt this point, there is a full mesh cluster of NATS servers.\nTesting the Cluster\nNow, the following should work: make a subscription to Node A then publish to Node C. You should be able to to receive the message without problems.\nnats-sub -s \"nats://192.168.59.103:7222\" hello &\n\nnats-pub -s \"nats://192.168.59.105:7222\" hello world\n\n[#1] Received on [hello] : 'world'\n\n# GNATSD on Node C logs:\n[1] 2015/06/23 05:20:31.100032 [TRC] 192.168.59.103:7244 - rid:2 - \n"},"nats_server/cluster_config.html":{"url":"nats_server/cluster_config.html","title":"Configuration","keywords":"","body":"Cluster Configuration\nThe cluster configuration map has the following configuration options:\n\n\n\nProperty\nDescription\n\n\n\n\nlisten\nhost/port for inbound route connections\n\n\nauthorization\nauthorization map for configuring cluster clients. Supports token, username/password and TLS authentication. permissions are ignored.\n\n\ntimeout\nMaximum amount of time (in seconds) to wait for a clustering connection to complete \n\n\ntls\nA tls configuration map for securing the clustering connection\n\n\nroutes\nA list of other servers (URLs) to cluster with. Self-routes are ignored.\n\n\n\ncluster {\n listen: localhost:4244 # host/port for inbound route connections\n\n # Authorization for route connections\n authorization {\n user: route_user\n # ./util/mkpasswd -p T0pS3cr3tT00!\n password: $2a$11$xH8dkGrty1cBNtZjhPeWJewu/YPbSU.rXJWmS6SFilOBXzmZoMk9m\n timeout: 0.5\n }\n\n # Routes are actively solicited and connected to from this server.\n # Other servers can connect to us if they supply the correct credentials\n # in their routes definitions from above.\n routes = [\n nats-route://user1:pass1@127.0.0.1:4245\n nats-route://user2:pass2@127.0.0.1:4246\n ]\n}\n\n"},"nats_server/cluster_tls.html":{"url":"nats_server/cluster_tls.html","title":"TLS Authentication","keywords":"","body":"Cluster TLS Mutual Authentication\nWhen setting up clusters all servers in the cluster, if using TLS, will both verify the connecting endpoints and the server responses. So certificates are checked in both directions. Certificates can be configured only for the server's cluster identity, keeping client and server certificates separate from cluster formation.\ncluster {\n listen: 127.0.0.1:4244\n\n tls {\n # Route cert\n cert_file: \"./configs/certs/srva-cert.pem\"\n # Private key\n key_file: \"./configs/certs/srva-key.pem\"\n # Optional certificate authority verifying connected routes\n # Required when we have self-signed CA, etc.\n ca_file: \"./configs/certs/ca.pem\"\n }\n # Routes are actively solicited and connected to from this server.\n # Other servers can connect to us if they supply the correct credentials\n # in their routes definitions from above.\n routes = [\n nats-route://127.0.0.1:4246\n ]\n}\n"},"gateways/":{"url":"gateways/","title":"Gateways","keywords":"","body":"Gateways\nGateways enable connecting one or more clusters together; they allow the formation of super clusters from smaller clusters. Cluster and Gateway protocols listen in different ports. Clustering is used for adjacent servers; gateways are for joining clusters together. Typically all cluster nodes will also be gateway nodes, but this is not a requirement.\nGateway configuration is similar to clustering:\n\ngateways have a dedicated port where they listen for gateway requests\ngateways gossip gateway members and remote discovered gateways\n\nUnlike clusters, gateways:\n\ndon't form a full mesh\nare bound by uni-directional connections\n\nGateways exist to:\n\nreduce the number of connections required between servers \noptimize the interest graph propagation\n\nGateway Connections\nA nats-server in a gateway role will specify a port where it will accept gateways connections. If the configuration specifies other external gateways, the gateway will create one outbound gateway connection for each gateway in its configuration. It will also gossip other gateways it knows or discovered. \nIf the local cluster has three gateway nodes, this means there will be three outbound connections to each external gateway.\n\n\nIn the example above cluster A has configured gateway connections for B (solid lines). B has discovered gateway connections to A (dotted lines). Note that the number of outgoing connections always matches the number of gateways with the same name.\n\n\n\nIn this second example, again configured connections are shown with solid lines and discovered gateway connections are shown using dotted lines. Gateways A and C were both discovered via gossiping; B discovered A and A discovered C.\n\nA key point in the description above is that each node in the cluster will make a connection to a single node in the remote cluster โ€” a difference from the clustering protocol, where every node is directly connected to all other nodes.\nFor those mathematically inclined, cluster connections are N(N-1)/2 where N is the number of nodes in the cluster. On gateway configurations, outbound connections are the summation of Ni(M-1) where Ni is the number of nodes in a gateway i, and M is the total number of gateways. Inbound connections are the summation of U-Ni where U is the sum of all gateway nodes in all gateways, and N is the number of nodes in a gateway i. It works out that both inbound and outbound connection counts are the same.\nThe number of connections required to join clusters using clustering vs. gateways is apparent very quickly. For 3 clusters, with N nodes:\n\n\n\nNodes per Cluster\nFull Mesh Conns\nGateway Conns\n\n\n\n\n1\n3\n6\n\n\n2\n15\n12\n\n\n3\n36\n18\n\n\n4\n66\n24\n\n\n5\n105\n30\n\n\n30\n4005\n180\n\n\n\nInterest Propagation\nGateways propagate interest using three different mechanisms:\n\nOptimistic Mode\nInterest-only Mode\nQueue Subscriptions\n\nOptimistic Mode\nWhen a publisher in A publishes \"foo\", the A gateway will check if cluster B has registered no interest in \"foo\". If not, it forwards \"foo\" to B. If upon receiving \"foo\", B has no subscribers on \"foo\", B will send a gateway protocol message to A expressing that it has no interest on \"foo\", preventing future messages on \"foo\" from being forwarded.\nShould a subscriber on B create a subscription to \"foo\", B knowing that it had previously rejected interest on foo, will send a gateway protocol message to cancel its previous no interest on \"foo\" in A.\nInterest-only Mode\nWhen a gateway on A sends many messages on various subjects for which B has no interest. B sends a gateway protocol message for A to stop sending optimistically, and instead send if there's known interest in the subject. As subscriptions come and go on B, B will update its subject interest with A.\nQueue Subscriptions\nWhen a queue subscriber creates a new subscription, the gateway propagates the subscription interest to other gateways. The subscription interest is only propagated once per Account and subject. When the last queue subscriber is gone, the cluster interest is removed.\nQueue subscriptions work on Interest-only Mode to honor NATS' queue semantics across the Super Cluster. For each queue group, a message is only delivered to a single queue subscriber. Only when a local queue group member is not found, is a message forwarded to a different interested cluster; gateways will always try to serve local queue subscribers first and only failover when a local queue subscriber is not found.\nGateway Configuration\nThe Gateway Configuration document describes all the options available to gateways.\n"},"gateways/gateway.html":{"url":"gateways/gateway.html","title":"Configuration","keywords":"","body":"Gateway Configuration\nThe gateway configuration block is similar to a cluster block:\ngateway {\n name: \"A\"\n listen: \"localhost:7222\"\n authorization {\n user: gwu\n password: gwp\n }\n\n gateways: [\n {name: \"A\", url: \"nats-gateway://gwu:gwp@localhost:7222\"},\n {name: \"B\", url: \"nats-gateway://gwu:gwp@localhost:7333\"},\n {name: \"C\", url: \"nats-gateway://gwu:gwp@localhost:7444\"},\n ]\n}\n\nOne difference is that instead of routes you specify gateways. As expected self-gateway connections are ignored, so you can share gateway configurations with minimal fuzz.\nStarting a server: \n> nats-server -c A.conf\n[85803] 2019/05/07 10:50:55.902474 [INF] Starting nats-server version 2.0.0-RC11\n[85803] 2019/05/07 10:50:55.902547 [INF] Git commit [not set]\n[85803] 2019/05/07 10:50:55.903669 [INF] Gateway name is A\n[85803] 2019/05/07 10:50:55.903684 [INF] Listening for gateways connections on localhost:7222\n[85803] 2019/05/07 10:50:55.903696 [INF] Address for gateway \"A\" is localhost:7222\n[85803] 2019/05/07 10:50:55.903909 [INF] Listening for client connections on 0.0.0.0:4222\n[85803] 2019/05/07 10:50:55.903914 [INF] Server id is NBHUDBF3TVJSWCDPG2HSKI4I2SBSPDTNYEXEMOFAZUZYXVA2IYRUGPZU\n[85803] 2019/05/07 10:50:55.903917 [INF] Server is ready\n[85803] 2019/05/07 10:50:56.830669 [INF] 127.0.0.1:50892 - gid:2 - Processing inbound gateway connection\n[85803] 2019/05/07 10:50:56.830673 [INF] 127.0.0.1:50891 - gid:1 - Processing inbound gateway connection\n[85803] 2019/05/07 10:50:56.831079 [INF] 127.0.0.1:50892 - gid:2 - Inbound gateway connection from \"C\" (NBHWDFO3KHANNI6UCEUL27VNWL7NWD2MC4BI4L2C7VVLFBSMZ3CRD7HE) registered\n[85803] 2019/05/07 10:50:56.831211 [INF] 127.0.0.1:50891 - gid:1 - Inbound gateway connection from \"B\" (ND2UJB3GFUHXOQ2UUMZQGOCL4QVR2LRJODPZH7MIPGLWCQRARJBU27C3) registered\n[85803] 2019/05/07 10:50:56.906103 [INF] Connecting to explicit gateway \"B\" (localhost:7333) at 127.0.0.1:7333\n[85803] 2019/05/07 10:50:56.906104 [INF] Connecting to explicit gateway \"C\" (localhost:7444) at 127.0.0.1:7444\n[85803] 2019/05/07 10:50:56.906404 [INF] 127.0.0.1:7333 - gid:3 - Creating outbound gateway connection to \"B\"\n[85803] 2019/05/07 10:50:56.906444 [INF] 127.0.0.1:7444 - gid:4 - Creating outbound gateway connection to \"C\"\n[85803] 2019/05/07 10:50:56.906647 [INF] 127.0.0.1:7444 - gid:4 - Outbound gateway connection to \"C\" (NBHWDFO3KHANNI6UCEUL27VNWL7NWD2MC4BI4L2C7VVLFBSMZ3CRD7HE) registered\n[85803] 2019/05/07 10:50:56.906772 [INF] 127.0.0.1:7333 - gid:3 - Outbound gateway connection to \"B\" (ND2UJB3GFUHXOQ2UUMZQGOCL4QVR2LRJODPZH7MIPGLWCQRARJBU27C3) registered\n\nOnce all the gateways are up, these clusters of one will forward messages as expected:\n> nats-pub -s localhost:4444 foo bar\nPublished [foo] : 'bar'\n\n# On a different session...\n> nats-sub -s localhost:4333 \">\"\nListening on [>]\n[#1] Received on [foo]: 'bar'\n\nGateway Configuration Block\n\n\n\nProperty\nDescription\n\n\n\n\nadvertise\nHostport : to advertise to other gateways.\n\n\nauthorization\nAuthorization block (same as other nats-server authorization configuration).\n\n\nconnect_retries\nNumber of times the server will try to connect to a discovered gateway.\n\n\ngateways\nList of Gateway entries - see below.\n\n\nhost\nInterface where the gateway will listen for incomming gateway connections.\n\n\nlisten\nCombines host and port as :\n\n\nname\nName for this cluster, all gateways belonging to the same cluster, should specify the same name.\n\n\nport\nPort where the gateway will listen for incomming gateway connections.\n\n\nreject_unknown\nIf true, gateway will reject connections from gateways that are not configured in gateways.\n\n\ntls\nTLS configuration block (same as other nats-server tls configuration).\n\n\n\nGateway Entry\nThe gateways configuration block is a list of gateway entries with the following properties:\n\n\n\nProperty\nDescription\n\n\n\n\nname\nGateway name.\n\n\nurl\nHostport : describing where the remote gateway can be reached. If multiple IPs are returned, one is randomly selected.\n\n\nurls\nA list of url\n\n\n\n"},"leafnodes/":{"url":"leafnodes/","title":"Leaf Nodes","keywords":"","body":"Leaf Nodes\nA Leaf Node is a separate authentication domain. Leaf Nodes leverage Accounts and JWT to enable a server to connect to another and filter messages as per the leaf node's account User configuration.\nThis effectively means that the leaf node cluster's with the other server at an Account level:\n\nLeaf nodes clients authenticate locally (or just connect if authentication is not required)\nTraffic between the leaf node and the cluster assume the restrictions of the User configuration used to create the leaf connection. \nSubjects that the user is allowed to publish are exported to the cluster. \nSubjects the user is allowed to subscribe to, are imported into the leaf node.\n\n\n\n\nLeaf Nodes are an important component as a way to bridge traffic between local nats-servers you control and servers that are managed by a third-party. The Synadia's NATS Global Service (NGS) allows accounts to use leaf nodes, but gain accessibility to the global network to inexpensively connect geographically distributed servers or small clusters.\n\nLeafNode Configuration Options\nLeafNode Configuration Tutorial\nCreate a new operator called \"O\":\n> nsc add operator -n O\nGenerated operator key - private key stored \"~/.nkeys/O/O.nk\"\nSuccess! - added operator \"O\"\n\nCreate an account called \"A\":\n> nsc add account -n A\nGenerated account key - private key stored \"~/.nkeys/O/accounts/A/A.nk\"\nSuccess! - added account \"A\"\n\nCreate an user called \"leaf\":\n> nsc add user -n leaf\nGenerated user key - private key stored \"~/.nkeys/O/accounts/A/users/leaf.nk\"\nGenerated user creds file \"~/.nkeys/O/accounts/A/users/leaf.creds\"\nSuccess! - added user \"leaf\" to \"A\"\n\nLet's create an second user called 'nolimit'\n> nsc add user -n nolimit\nGenerated user key - private key stored \"~/.nkeys/O/accounts/A/users/nolimit.nk\"\nGenerated user creds file \"~/.nkeys/O/accounts/A/users/nolimit.creds\"\nSuccess! - added user \"nolimit\" to \"A\"\n\nStart a nats-account-server:\n> nats-account-server -nsc ~/.nsc/nats/O\n\nCreate the server configuration file (server.conf) with the following contents:\noperator: /Users/synadia/.nsc/nats/O/O.jwt\nresolver: URL(http://localhost:9090/jwt/v1/accounts/)\nleafnodes {\n listen: \"127.0.0.1:4000\"\n}\n\nThe server configuration naturally requires an operator and resolver to deal with the JWT authentication and accounts. In addition the leafnodes configuration exposes a listen where the server will receive leaf nodes. In this case on the localhost on port 4000.\nStart the nats-server:\n> nats-server -c server.conf\n\nCreate a subscriber on the server:\n> nats-sub -creds ~/.nkeys/O/accounts/A/users/nolimit.creds \">\"\nListening on [>]\n\nCreate the leaf server configuration (leaf.conf) with the following contents:\nport: 4111\nleafnodes {\n remotes = [ \n { url: nats-leaf://localhost:4000, \n credentials: /Users/synadia/.nkeys/O/accounts/A/users/leaf.creds \n },\n ]\n}\n\nNote the leaf node configuration lists a number of remotes. The url specifies the port on the server where leaf node connections are allowed. The credentials configuration specifies the path to a user's credentials file.\nCreate a subscriber on the leaf:\n> nats-sub -s localhost:4111 \">\"\nListening on [>]\n\nPublish a message on the server:\n> nats-pub -creds ~/.nkeys/O/accounts/A/users/leaf.creds foo foo\nPublished [foo] : 'foo'\n\nBoth the server and leaf subscriber print:\n[#1] Received on [foo]: 'foo'\n\nPublish a message on the leaf:\n> nats-pub -s localhost:4111 bar bar\nPublished [bar] : 'bar'\n\nBoth the server and leaf subscribers print:\n[#2] Received on [bar]: 'bar'\n\nThe leaf forwards all local messages to the server where members of the account are able to receive them. Messages published on the server by the account are forwarded to the leaf where subscribers are able to receive them.\nLeaf Authorization\nIn some cases you may want to restrict what messages can be exported from the leaf node or imported from the account. For leaf servers this is simply a user account configuration, as users can have specific permissions on what subjects to publish and/or subscribe to.\nLet's put some restrictions on the leaf user so that it can only publish to foo and subscribe to bar:\n> nsc edit user -n leaf --allow-pub foo --allow-sub bar\nUpdated user creds file \"~/.nkeys/O/accounts/A/users/leaf.creds\"\nSuccess! - edited user \"leaf\" in account \"A\"\n\n-----BEGIN NATS ACCOUNT JWT-----\neyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJVSk9RTFVSTUVFTVZXQVpVT0E2VlE1UVQ0UEdIV081WktDWlBLVFBJQVpLSldaSTJGNVpRIiwiaWF0IjoxNTU2ODM1MzU4LCJpc3MiOiJBRDU3TUZOQklLTzNBRFU2VktMRkVYQlBVQjdFWlpLU0tVUDdZTzNWVUFJTUlBWUpVNE1EM0NDUiIsIm5hbWUiOiJsZWFmIiwic3ViIjoiVUNEMlpSVUs1UE8yMk02MlNWVTZITzZJS01BVERDUlJYVVVGWDRRU1VTWFdRSDRHU1Y3RDdXVzMiLCJ0eXBlIjoidXNlciIsIm5hdHMiOnsicHViIjp7ImFsbG93IjpbImZvbyJdfSwic3ViIjp7ImFsbG93IjpbImJhciJdfX19.IeqSylTaisMQMH3Ih_0G8LLxoxe0gIClpxTm3B_ys_XwL9TtPIW-M2qdaYQZ_ZmR2glMvYK4EJ6J8RQ1UZdGAg\n------END NATS ACCOUNT JWT------\n\n> nsc describe user -n leaf\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ User โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ leaf โ”‚\nโ”‚ User ID โ”‚ UCD2ZRUK5PO2 โ”‚\nโ”‚ Issuer ID โ”‚ AD57MFNBIKO3 โ”‚\nโ”‚ Issued โ”‚ 2019-05-02 22:15:58 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Pub Allow โ”‚ foo โ”‚\nโ”‚ Sub Allow โ”‚ bar โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Messages โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Network Src โ”‚ Any โ”‚\nโ”‚ Time โ”‚ Any โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nAs we can see on the inspection of the user, the restrictions have been applied.\nLet's repeat the experiment. This time we'll restart the leaf server so that the new user configuration is applied:\n> nats-server -c leaf.conf\n\nYou should see a new message on the leaf subscriber:\nReconnected [nats://localhost:4111]\n\nLet's publish a message on the leaf:\n> nats-pub -s localhost:4111 foo foo\nPublished [foo] : 'foo'\n\nYou should see a new message in all your subscriber windows:\n[#3] Received on [foo]: 'foo'\n\nNow publish a new message on the leaf, but this time with the subject bar:\n> nats-pub -s localhost:4111 bar bar\nPublished [bar] : 'bar'\n\nThis time only the leaf subscriber will print [#4] Received on [bar]: 'bar', the account subscriber won't print it because the leaf user doesn't have permissions to publish on 'bar'.\nLet's try the flow of messages from the server to the leaf node:\n> nats-pub -creds ~/.nkeys/O/accounts/A/users/leaf.creds foo foo\nPublished [foo] : 'foo'\nOnly the server subscriber will receive the message as expected.\nRepeat the publish this time with 'bar':\n> nats-pub -creds ~/.nkeys/O/accounts/A/users/leaf.creds bar bar\nPublished [bar] : 'bar'\nBoth subscribers will receive the message as expected.\nAs you can see:\n\nMessages to and from the leaf node to the server are limitted by the user associated with the leaf node connection.\nMessages within the leaf node are as per the server's authentication and authorization configuration\n\n"},"leafnodes/leafnode_conf.html":{"url":"leafnodes/leafnode_conf.html","title":"Configuration","keywords":"","body":"LeafNode Configuration Block\n\n\n\nProperty\nDescription\n\n\n\n\nadvertise\nHostport : to advertise to other gateways.\n\n\nauthorization\nAuthorization block (same as other nats-server authorization configuration).\n\n\nhost\nInterface where the gateway will listen for incomming gateway connections.\n\n\nlisten\nCombines host and port as :\n\n\nname\nName for this cluster, all gateways belonging to the same cluster, should specify the same name.\n\n\n`no_advertise\nif true the leafnode shouldn't be advertised.\n\n\nport\nPort where the gateway will listen for incomming gateway connections.\n\n\nremotes\nList of remote entries specifying servers where leafnode client connection can be made.\n\n\ntls\nTLS configuration block (same as other nats-server tls configuration).\n\n\n\nLeafNode Remote Entry Block\n\n\n\nProperty\nDescription\n\n\n\n\nurl\nLeafnode URL (URL protocol should be leafnode).\n\n\naccount\nAccount public key identifying the leafnode. Account must be defined locally.\n\n\ncredentials\nCredential file for connecting to the leafnode server.\n\n\ntls\nA TLS configuration block. Gateway client will use specified TLS certificates when connecting/authenticating.\n\n\n\nTLS Configuration Block\n\n\n\nProperty\nDescription\n\n\n\n\ncert_file\nTLS certificate file.\n\n\nkey_file\nTLS certificate key file.\n\n\nca_file\nTLS certificate authority file.\n\n\ninsecure\nSkip certificate verfication.\n\n\nverify\nIf true, require and verify client certificates.\n\n\nverify_and_map\nIf true, require and verify client certificates and use values map certificate values for authentication purposes.\n\n\ncipher_suites\nWhen set, only the specified TLS cipher suites will be allowed. Values must match golang version used to build the server.\n\n\ncurve_preferences\nList of TLS cypher curves to use in order.\n\n\ntimeout\nTLS handshake timeout in fractional seconds.\n\n\n\n"},"nats_server/logging.html":{"url":"nats_server/logging.html","title":"Logging","keywords":"","body":"Configuring Logging\nThe NATS server provides various logging options that you can set via the command line or the configuration file.\nCommand Line Options\nThe following logging operations are supported:\n-l, --log FILE File to redirect log output.\n-T, --logtime Timestamp log entries (default is true).\n-s, --syslog Enable syslog as log method.\n-r, --remote_syslog Syslog server address.\n-D, --debug Enable debugging output.\n-V, --trace Trace the raw protocol.\n-DV Debug and Trace.\nDebug and trace\nThe -DV flag enables trace and debug for the server.\nnats-server -DV -m 8222 -user foo -pass bar\n\nLog file redirect\nnats-server -DV -m 8222 -l nats.log\n\nTimestamp\nIf -T false then log entries are not timestamped. Default is true.\nSyslog\nYou can configure syslog with UDP:\nnats-server -s udp://localhost:514\n\nor syslog:\nnats-server -r syslog://:\n\nFor example:\nsyslog://logs.papertrailapp.com:26900\n\nUsing the Configuration File\nAll of these settings are available in the configuration file as well.\ndebug: false\ntrace: true\nlogtime: false\nlog_file: \"/tmp/nats-server.log\"\n\nLog Rotation with logrotate\nNATS server does not provide tools to manage log files, but it does include mechanisms that make log rotation simple. We can use this mechanism with logrotate; a simple standard Linux utility to rotate logs available on most distributions like Debian, Ubuntu, RedHat (CentOS), etc.\nFor example, you could configure logrotate with:\n/path/to/nats-server.log {\n daily\n rotate 30\n compress\n missingok\n notifempty\n postrotate\n kill -SIGUSR1 `cat /var/run/nats-server.pid`\n endscript\n}\n\nThe first line specifies the location that the subsequent lines will apply to.\nThe rest of the file specifies that the logs will rotate daily (\"daily\" option) and that 30 older copies will be preserved (\"rotate\" option). Other options are described in logrorate documentation.\nThe \"postrotate\" section tells NATS server to reload the log files once the rotation is complete. The command kill -SIGUSR1 `cat /var/run/nats-server.pid` does not kill the NATS server process, but instead sends it a signal causing it to reload its log files. This will cause new requests to be logged to the refreshed log file.\nThe /var/run/nats-server.pid file is where NATS server stores the master process's pid.\nSome Logging Notes\n\nThe NATS Server, in verbose mode, will log the receipt of UNSUB messages, but this does not indicate the subscription is gone, only that the message was received. The DELSUB message in the log can be used to determine when the actual subscription removal has taken place.\n\n"},"nats_server/monitoring.html":{"url":"nats_server/monitoring.html","title":"Monitoring","keywords":"","body":"Monitoring\nTo monitor the NATS messaging system, gnatsd provides a lightweight HTTP server on a dedicated monitoring port. The monitoring server provides several endpoints, including varz, connz, routez, and subsz. All endpoints return a JSON object.\nThe NATS monitoring endpoints support JSONP and CORS, making it easy to create single page monitoring web applications.\nEnabling monitoring\nTo enable the monitoring server, start the NATS server with the monitoring flag -m and the monitoring port, or turn it on in the configuration file.\n-m, --http_port PORT HTTP PORT for monitoring\n-ms,--https_port PORT Use HTTPS PORT for monitoring\nExample:\n$ gnatsd -m 8222\n[4528] 2015/08/19 20:09:58.572939 [INF] Starting gnatsd version 0.8.0\n[4528] 2015/08/19 20:09:58.573007 [INF] Starting http monitor on port 8222\n[4528] 2015/08/19 20:09:58.573071 [INF] Listening for client connections on 0.0.0.0:4222\n[4528] 2015/08/19 20:09:58.573090 [INF] gnatsd is ready\n\nTo test, run gnatsd -m 8222, then go to http://localhost:8222/\nMonitoring endpoints\nThe following sections describe each supported monitoring endpoint: varz, connz, routez, and subsz.\n/varz\nThe endpoint http://localhost:8222/varz reports various general statistics.\n{\n \"server_id\": \"ec933edcd2bd86bcf71d555fc8b4fb2c\",\n \"version\": \"0.6.6\",\n \"go\": \"go1.5.0\",\n \"host\": \"0.0.0.0\",\n \"port\": 4222,\n \"auth_required\": false,\n \"ssl_required\": false,\n \"max_payload\": 1048576,\n \"max_connections\": 65536,\n \"ping_interval\": 120000000000,\n \"ping_max\": 2,\n \"http_port\": 8222,\n \"ssl_timeout\": 0.5,\n \"max_control_line\": 1024,\n \"start\": \"2015-07-14T13:29:26.426805508-07:00\",\n \"now\": \"2015-07-14T13:30:59.349179963-07:00\",\n \"uptime\": \"1m33s\",\n \"mem\": 8445952,\n \"cores\": 4,\n \"cpu\": 0,\n \"connections\": 39,\n \"routes\": 0,\n \"remotes\": 0,\n \"in_msgs\": 100000,\n \"out_msgs\": 100000,\n \"in_bytes\": 1600000,\n \"out_bytes\": 1600000,\n \"slow_consumers\": 0\n}\n\n/connz\nThe endpoint http://localhost:8222/connz reports more detailed information on current connections. It uses a paging mechanism which defaults to 1024 connections.\nYou can control these via URL arguments (limit and offset). For example: http://localhost:8222/connz?limit=1&offset=1.\nYou can also report detailed subscription information on a per connection basis using subs=1. For example: http://localhost:8222/connz?limit=1&offset=1&subs=1.\n{\n \"now\": \"2015-07-14T13:30:59.349179963-07:00\",\n \"num_connections\": 2,\n \"offset\": 0,\n \"limit\": 1024,\n \"connections\": [\n {\n \"cid\": 571,\n \"ip\": \"127.0.0.1\",\n \"port\": 61572,\n \"pending_size\": 0,\n \"in_msgs\": 0,\n \"out_msgs\": 0,\n \"in_bytes\": 0,\n \"out_bytes\": 0,\n \"subscriptions\": 1,\n \"lang\": \"go\",\n \"version\": \"1.0.9\",\n \"subscriptions_list\": [\n \"hello.world\"\n ]\n },\n {\n \"cid\": 574,\n \"ip\": \"127.0.0.1\",\n \"port\": 61577,\n \"pending_size\": 0,\n \"in_msgs\": 0,\n \"out_msgs\": 0,\n \"in_bytes\": 0,\n \"out_bytes\": 0,\n \"subscriptions\": 1,\n \"lang\": \"ruby\",\n \"version\": \"0.5.0\",\n \"subscriptions_list\": [\n \"hello.world\"\n ]\n }\n ]\n}\n\n/routez\nThe endpoint http://localhost:8222/routez reports information on active routes for a cluster. Routes are expected to be low, so there is no paging mechanism with this endpoint.\nThe routez endpoint does support the subs argument from the /connz endpoint. For example: http://localhost:8222/routez?subs=1\n{\n \"now\": \"2015-07-14T13:30:59.349179963-07:00\",\n \"num_routes\": 1,\n \"routes\": [\n {\n \"rid\": 1,\n \"remote_id\": \"de475c0041418afc799bccf0fdd61b47\",\n \"did_solicit\": true,\n \"ip\": \"127.0.0.1\",\n \"port\": 61791,\n \"pending_size\": 0,\n \"in_msgs\": 0,\n \"out_msgs\": 0,\n \"in_bytes\": 0,\n \"out_bytes\": 0,\n \"subscriptions\": 0\n }\n ]\n}\n\n/subsz\nThe endpoint http://localhost:8222/subz reports detailed information about the current subscriptions and the routing data structure.\n{\n \"num_subscriptions\": 3,\n \"num_cache\": 0,\n \"num_inserts\": 572,\n \"num_removes\": 569,\n \"num_matches\": 200000,\n \"cache_hit_rate\": 0.99999,\n \"max_fanout\": 0,\n \"avg_fanout\": 0,\n \"stats_time\": \"2015-07-14T12:55:25.564818051-07:00\"\n}\n\nCreating monitoring applications\nNATS monitoring endpoints support JSONP and CORS. You can easily create single page web applications for monitoring. To do this you simply pass the callback query parameter to any endpoint.\nFor example:\nhttp://localhost:8222/connz?callback=cb\n\nHere is a JQuery example implementation:\n$.getJSON('http://localhost:8222/connz?callback=?', function(data) {\n console.log(data);\n});\n\n"},"nats_admin/":{"url":"nats_admin/","title":"Managing A NATS Server","keywords":"","body":"Managing a NATS Server\nManaging a NATS server is simple, typical lifecycle operations include:\n\nSending signals to a server to reload a configuration or rotate log files\nUpgrading a server (or cluster)\nUnderstanding slow consumers\n\n"},"nats_admin/upgrading_cluster.html":{"url":"nats_admin/upgrading_cluster.html","title":"Upgrading a Cluster","keywords":"","body":"Cluster Upgrading\nThe basic strategy for upgrading a cluster revolves around the server's ability to gossip cluster configuration to clients and other servers. When cluster configuration changes, clients become aware of new servers automatically. In case of a disconnect, a client has a list of servers that joined the cluster in addition to the ones it knew about from its connection settings. \nNote that since each server stores it's own permission and authentication configuration, new servers added to a cluster should provide the same users and authorization to prevent clients from getting rejected or gaining unexpected privileges.\nFor purposes of describing the scenario, let's get some fingers on keyboards, and go through the motions. Let's consider a cluster of two servers: 'A' and 'B.', and yes - clusters should be three to five servers, but for purposes of describing the behavior and cluster upgrade process, a cluster of two servers will suffice. \nLet's build this cluster:\nnats-server -D -p 4222 -cluster nats://localhost:6222 -routes nats://localhost:6222,nats://localhost:6333\n\nThe command above is starting nats-server with debug output enabled, listening for clients on port 4222, and accepting cluster connections on port 6222. The -routes option specifies a list of nats URLs where the server will attempt to connect\nto other servers. These URLs define the cluster ports enabled on the cluster peers.\nKeen readers will notice a self-route. Gnatsd will ignore the self-route, but it makes for a single consistent configuration for all servers.\nYou will see the server started, we notice it emits some warnings because it cannot connect to 'localhost:6333'. The message more accurately reads:\n Error trying to connect to route: dial tcp localhost:6333: connect: connection refused\n\nLet's fix that, by starting the second server:\nnats-server -D -p 4333 -cluster nats://localhost:6333 -routes nats://localhost:6222,nats://localhost:6333\n\nThe second server was started on port 4333 with its cluster port on 6333. Otherwise the same as 'A.'\nLet's get one client, so we can observe it moving between servers as servers get removed:\nnats-sub -s nats://localhost:4222 \">\"\n\nNats-sub is a subscriber sample included with all NATS clients. Nats-sub subscribes to a subject and prints out any messages received. You can find the source code to the go version of nats-sub [here)(https://github.com/nats-io/go-nats/tree/master/examples). After starting the subscriber you should see a message on 'A' that a new client connected.\nWe have two servers and a client. Time to simulate our rolling upgrade. But wait, before we upgrade 'A,' let's introduce a new server 'T.' Server 'T' will join the existing cluster while we perform the upgrade. Its sole purpose is to provide an additional place where clients can go besides 'A.' and ensure we don't end up with a single server serving all the clients after the upgrade procedure. Clients will randomly select a server when connecting unless a special option is provided that disables that functionality (usually called 'DontRandomize' or 'noRandomize'). You can read more about \"Avoiding the Thundering Herd\".\nSuffice it to say that clients redistribute themselves about evenly between all servers in the cluster. In our case 1/2 of the clients on 'A' will jump over to 'B' and the remaining half to 'T.'\nLet's start our temporary server:\nnats-server -D -p 4444 -cluster nats://localhost:6444 -routes nats://localhost:6222,nats://localhost:6333\n\nAfter an instant or so, clients on 'A' learn of the new cluster member that joined. On our hands-on tutorial, nats-sub is now aware of 3 possible servers, 'A' (specified when we started the tool) and 'B' and 'T' learned from the cluster gossip.\nWe invoke our admin powers and turn off 'A' by issuing a CTRL+C to the terminal on 'A,' and observe that either 'B' or 'T' reports that a new client connected. That is our nats-sub client.\nWe perform the upgrade process, update the binary for 'A', and restart 'A':\nnats-server -D -p 4222 -cluster nats://localhost:6222 -routes nats://localhost:6222,nats://localhost:6333\n\nWe move on to upgrade 'B'. Notice that clients from 'B' reconnect to 'A' and 'T'. We upgrade and restart 'B':\nnats-server -D -p 4333 -cluster nats://localhost:6333 -routes nats://localhost:6222,nats://localhost:6333\n\nIf we had more servers, we would continue the stop, update, restart rotation as we did for 'A' and 'B.' After restarting the last server, we can go ahead and turn off 'T.' Any clients on 'T' will redistribute to our permanent cluster members.\nSeed Servers\nIn the examples above we started nats-server specifying two clustering routes. It is possible to allow the server gossip protocol drive it and reduce the amount of configuration. You could for example start A, B and C as follows:\nA - Seed Server\nnats-server -D -p 4222 -cluster nats://localhost:6222\n\nB\nnats-server -D -p 4333 -cluster nats://localhost:6333 -routes nats://localhost:6222\n\nC\nnats-server -D -p 4444 -cluster nats://localhost:6444 -routes nats://localhost:6222\n\nOnce they connect to the 'seed server', the will learn about all the other servers and connect to each other forming the full mesh.\n"},"nats_admin/slow_consumers.html":{"url":"nats_admin/slow_consumers.html","title":"Slow Consumers","keywords":"","body":"Slow Consumers\nTo support resiliency and high availability, NATS provides built-in mechanisms to automatically prune the registered listener interest graph that is used to keep track of subscribers, including slow consumers and lazy listeners. NATS automatically handles a slow consumer. If a client is not processing messages quick enough, the NATS server cuts it off. To support scaling, NATS provides for auto-pruning of client connections. If a subscriber does not respond to ping requests from the server within the ping-pong interval, the client is cut off (disconnected). The client will need to have reconnect logic to reconnect with the server.\nSlow Consumers\nIn core NATS, consumers that cannot keep up are handled differently from many other messaging systems: NATS favors the approach of protecting the system as a whole over accommodating a particular consumer to ensure message delivery.\nWhat is a slow consumer?\nA slow consumer is a subscriber that cannot keep up with the message flow delivered from the NATS server. This is a common case in distributed systems because it is often easier to generate data than it is to process it. When consumers cannot process data fast enough, back pressure is applied to the rest of the system. NATS has mechanisms to reduce this back pressure.\nNATS identifies slow consumers in the client or the server, providing notification through registered callbacks, log messages, and statistics in the server's monitoring endpoints.\nWhat happens to slow consumers?\nWhen detected at the client, the application is notified and messages are dropped to allow the consumer to continue and reduce potential back pressure. When detected in the server, the server will disconnect the connection with the slow consumer to protect itself and the integrity of the messaging system.\nSlow consumers identified in the client\nA client can detect it is a slow consumer on a local connection and notify the application through use of the asynchronous error callback. It is better to catch a slow consumer locally in the client rather than to allow the server to detect this condition. This example demonstrates how to define and register an asynchronous error handler that will handle slow consumer errors.\nfunc natsErrHandler(nc *nats.Conn, sub *nats.Subscription, natsErr error) {\n fmt.Printf(\"error: %v\\n\", natsErr)\n if natsErr == nats.ErrSlowConsumer {\n pendingMsgs, _, err := sub.Pending()\n if err != nil {\n fmt.Printf(\"couldn't get pending messages: %v\", err)\n return\n }\n fmt.Printf(\"Falling behind with %d pending messages on subject %q.\\n\",\n pendingMsgs, sub.Subject)\n // Log error, notify operations...\n }\n // check for other errors\n}\n\n// Set the error handler when creating a connection.\nnc, err := nats.Connect(\"nats://localhost:4222\",\n nats.ErrorHandler(natsErrHandler))\n\nWith this example code and default settings, a slow consumer error would generate output something like this:\nerror: nats: slow consumer, messages dropped\nFalling behind with 65536 pending messages on subject \"foo\".\n\nNote that if you are using a synchronous subscriber, Subscription.NextMsg(timeout time.Duration) will also return an error indicating there was a slow consumer and messages have been dropped.\nSlow consumers identified by the server\nWhen a client does not process messages fast enough, the server will buffer messages in the outbound connection to the client. When this happens and the server cannot write data fast enough to the client, in order to protect itself, it will designate a subscriber as a \"slow consumer\" and may drop the associated connection.\nWhen the server initiates a slow consumer error, you'll see the following in the server output:\n[54083] 2017/09/28 14:45:18.001357 [INF] ::1:63283 - cid:7 - Slow Consumer Detected\n\nThe server will also keep count of the number of slow consumer errors encountered, available through the monitoring varz endpoint in the slow_consumers field.\nHandling slow consumers\nApart from using NATS streaming or optimizing your consuming application, there are a few options available: scale, meter, or tune NATS to your environment.\nScaling with queue subscribers\nThis is ideal if you do not rely on message order. Ensure your NATS subscription belongs to a queue group, then scale as required by creating more instances of your service or application. This is a great approach for microservices - each instance of your microservice will receive a portion of the messages to process, and simply add more instances of your service to scale. No code changes, configuration changes, or downtime whatsoever.\nCreate a subject namespace that can scale\nYou can distribute work further through the subject namespace, with some forethought in design. This approach is useful if you need to preserve message order. The general idea is to publish to a deep subject namespace, and consume with wildcard subscriptions while giving yourself room to expand and distribute work in the future.\nFor a simple example, if you have a service that receives telemetry data from IoT devices located throughout a city, you can publish to a subject namespace like Sensors.North, Sensors.South, Sensors.East and Sensors.West. Initially, you'll subscribe to Sensors.> to process everything in one consumer. As your enterprise grows and data rates exceed what one consumer can handle, you can replace your single consumer with four consuming applications to subscribe to each subject representing a smaller segment of your data. Note that your publishing applications remain untouched.\nMeter the publisher\nA less favorable option may be to meter the publisher. There are several ways to do this varying from simply slowing down your publisher to a more complex approach periodically issuing a blocking request/reply to match subscriber rates.\nTune NATS through configuration \nThe NATS server can be tuned to determine how much data can be buffered before a consumer is considered slow, and some officially supported clients allow buffer sizes to be adjusted. Decreasing buffer sizes will let you identify slow consumers more quickly. Increasing buffer sizes is not typically recommended unless you are handling temporary bursts of data. Often, increasing buffer capacity will only postpone slow consumer problems.\nServer Configuration\nThe NATS server has a write deadline it uses to write to a connection. When this write deadline is exceeded, a client is considered to have a slow consumer. If you are encountering slow consumer errors in the server, you can increase the write deadline to buffer more data.\nThe write_deadline configuration option in the NATS server configuration file will tune this:\nwrite_deadline: 2s\n\n Tuning this parameter is ideal when you have bursts of data to accommodate. Be sure you are not just postponing a slow consumer error.\nClient Configuration\nMost officially supported clients have an internal buffer of pending messages and will notify your application through an asynchronous error callback if a local subscription is not catching up. Receiving an error locally does not necessarily mean that the server will have identified a subscription as a slow consumer.\nThis buffer can be configured through setting the pending limits after a subscription has been created:\nif err := sub.SetPendingLimits(1024*500, 1024*5000); err != nil {\n log.Fatalf(\"Unable to set pending limits: %v\", err)\n}\n\nThe default subscriber pending message limit is 65536, and the default subscriber pending byte limit is 65536*1024\nIf the client reaches this internal limit, it will drop messages and continue to process new messages. This is aligned with NATS at most once delivery. It is up to your application to detect the missing messages and recover from this condition.\n"},"nats_admin/signals.html":{"url":"nats_admin/signals.html","title":"Signals","keywords":"","body":"Process Signaling\nOn Unix systems, the NATS server responds to the following signals:\n\n\n\nSignal\nResult\n\n\n\n\nSIGKILL\nKills the process immediately\n\n\nSIGINT\nStops the server gracefully\n\n\nSIGUSR1\nReopens the log file for log rotation\n\n\nSIGHUP\nReloads server configuration file\n\n\nSIGUSR2\nStops the server after evicting all clients (lame duck mode)\n\n\n\nThe nats-server binary can be used to send these signals to running NATS servers using the -sl flag:\n# Quit the server\nnats-server --signal quit\n\n# Stop the server\nnats-server --signal stop\n\n# Reopen log file for log rotation\nnats-server --signal reopen\n\n# Reload server configuration\nnats-server --signal reload\n\n# Lame duck mode server configuration\nnats-server --signal ldm\n\nIf there are multiple nats-server processes running, or if pgrep isn't available, you must either specify a PID or the absolute path to a PID file:\nnats-server --signal stop=\n\nnats-server --signal stop=/path/to/pidfile\n\nSee the Windows Service section for information on signaling the NATS server on Windows.\n"},"sys_accounts/":{"url":"sys_accounts/","title":"System Accounts","keywords":"","body":"System Events\nNATS servers leverage Account support and generate events such as:\n\naccount connect/disconnect\nauthentication errors\nserver shutdown\nserver stat summary\n\nIn addition the server supports a limitted number of requests that can be used to query for account connections, server stat summaries, and pinging servers in the cluster.\nThese events are only accepted and visible to system account users. \nThe System Events Tutorial\nYou can learn more about System Accounts in the Tutorial.\n"},"sys_accounts/sys_accounts.html":{"url":"sys_accounts/sys_accounts.html","title":"Configuration","keywords":"","body":"System Events Tutorial\nThe following is a short tutorial on how you can activate a system account to:\n\nreceive periodic updates from the server\nsend requests to the server\nsend an account update to the server\n\nEvents and Services\nThe system account publishes messages under well known subject patterns.\nServer initiated events:\n\n$SYS.ACCOUNT..CONNECT (client connects)\n$SYS.ACCOUNT..DISCONNECT (client disconnects)\n$SYS.SERVER.ACCOUNT..CONNS (connections for an account changed)\n$SYS.SERVER..CLIENT.AUTH.ERR (authentication error)\n$SYS.ACCOUNT..LEAFNODE.CONNECT (leaf node connnects)\n$SYS.SERVER..STATSZ (stats summary)\n\nIn addition other tools with system account privileges, can initiate requests:\n\n$SYS.REQ.SERVER..STATSZ (request server stat summary)\n$SYS.REQ.SERVER.PING (discover servers - will return multiple messages)\n\nServers like nats-account-server publish system account messages when a claim is updated, the nats-server listens for them, and updates its account information accordingly:\n\n$SYS.ACCOUNT..CLAIMS.UPDATE\n\nWith these few messages you can build fairly surprisingly useful monitoring tools:\n\nhealth/load of your servers\nclient connects/disconnects\naccount connections\nauthentication errors\n\nEnabling System Events\nTo enable and access system events, you'll have to:\n\nCreate an Operator, Account and User\nRun a NATS Account Server (or Memory Resolver)\n\nCreate an Operator, Account, User\nLet's create an operator, system account and system account user:\n# Create an operator if you \n> nsc add operator -n SAOP\nGenerated operator key - private key stored \"~/.nkeys/SAOP/SAOP.nk\"\nSuccess! - added operator \"SAOP\"\n\n# Add the system account\n> nsc add account -n SYS\nGenerated account key - private key stored \"~/.nkeys/SAOP/accounts/SYS/SYS.nk\"\nSuccess! - added account \"SYS\"\n\n# Add a system account user\n> nsc add user -n SYSU\nGenerated user key - private key stored \"~/.nkeys/SAOP/accounts/SYS/users/SYSU.nk\"\nGenerated user creds file \"~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds\"\nSuccess! - added user \"SYSU\" to \"SYS\"\n\nBy default, the operator JWT can be found in ~/.nsc/nats//.jwt.\nNats-Account-Server\nTo vend the credentials to the nats-server, we'll use a nats-account-server. Let's start a nats-account-server to serve the JWT credentials:\n> nats-account-server -nsc ~/.nsc/nats/SAOP\n\nThe server will by default vend JWT configurations on the an endpoint at: http(s):///jwt/v1/accounts/.\nNATS Server Configuration\nThe server configuration will need:\n\nThe operator JWT - (~/.nsc/nats//.jwt)\nThe URL where the server can resolve accounts (http://localhost:9090/jwt/v1/accounts/)\nThe public key of the system_account\n\nThe only thing we don't have handy is the public key for the system account. We can get it easy enough:\n> nsc list accounts -W\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Accounts โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Public Key โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ SYS โ”‚ ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nBecause the server has additional resolver implementations, you need to enclose the server url like: URL().\nLet's create server config with the following contents and save it to server.conf:\noperator: /Users/synadia/.nsc/nats/SAOP/SAOP.jwt\nsystem_account: ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF\nresolver: URL(http://localhost:9090/jwt/v1/accounts/)\n\nLet's start the nats-server:\n> nats-server -c server.conf\n\nInspecting Server Events\nLet's add a subscriber for all the events published by the system account:\n> nats-sub -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds \">\"\n\nVery quickly we'll start seeing messages from the server as they are published by the NATS server. As should be expected, the messages are just JSON, so they can easily be inspected even if just using a simple nats-sub to read them.\nTo see an an account update:\n> nats-pub -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds foo bar\n\nThe subscriber will print the connect and disconnect:\n[#35] Received on [$SYS.SERVER.ACCOUNT.ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF.CONNS]: '{\n \"server\": {\n \"host\": \"0.0.0.0\",\n \"id\": \"NBTGVY3OKDKEAJPUXRHZLKBCRH3LWCKZ6ZXTAJRS2RMYN3PMDRMUZWPR\",\n \"ver\": \"2.0.0-RC5\",\n \"seq\": 32,\n \"time\": \"2019-05-03T14:53:15.455266-05:00\"\n },\n \"acc\": \"ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF\",\n \"conns\": 1,\n \"total_conns\": 1\n}'\n[#36] Received on [$SYS.ACCOUNT.ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF.DISCONNECT]: '{\n \"server\": {\n \"host\": \"0.0.0.0\",\n \"id\": \"NBTGVY3OKDKEAJPUXRHZLKBCRH3LWCKZ6ZXTAJRS2RMYN3PMDRMUZWPR\",\n \"ver\": \"2.0.0-RC5\",\n \"seq\": 33,\n \"time\": \"2019-05-03T14:53:15.455304-05:00\"\n },\n \"client\": {\n \"start\": \"2019-05-03T14:53:15.453824-05:00\",\n \"host\": \"127.0.0.1\",\n \"id\": 6,\n \"acc\": \"ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF\",\n \"user\": \"UACPEXCAZEYWZK4O52MEGWGK4BH3OSGYM3P3C3F3LF2NGNZUS24IVG36\",\n \"name\": \"NATS Sample Publisher\",\n \"lang\": \"go\",\n \"ver\": \"1.7.0\",\n \"stop\": \"2019-05-03T14:53:15.45526-05:00\"\n },\n \"sent\": {\n \"msgs\": 1,\n \"bytes\": 3\n },\n \"received\": {\n \"msgs\": 0,\n \"bytes\": 0\n },\n \"reason\": \"Client Closed\"\n}'\n\n$SYS.REQ.SERVER.PING - Discovering Servers\nTo discover servers in the cluster, and get a small heath summary, publish a request to $SYS.REQ.SERVER.PING. Note that while the example below uses nats-req, only the first answer for the request will be printed. You can easily modify the example to wait until no additional responses are received for a specific amount of time, thus allowing for all responses to be collected.\n> nats-req -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds \\$SYS.REQ.SERVER.PING \"\"\nPublished [$SYS.REQ.SERVER.PING] : ''\nReceived [_INBOX.G5mbsf0k7l7nb4eWHa7GTT.omklmvnm] : '{\n \"server\": {\n \"host\": \"0.0.0.0\",\n \"id\": \"NCZQDUX77OSSTGN2ESEOCP4X7GISMARX3H4DBGZBY34VLAI4TQEPK6P6\",\n \"ver\": \"2.0.0-RC9\",\n \"seq\": 47,\n \"time\": \"2019-05-02T14:02:46.402166-05:00\"\n },\n \"statsz\": {\n \"start\": \"2019-05-02T13:41:01.113179-05:00\",\n \"mem\": 12922880,\n \"cores\": 20,\n \"cpu\": 0,\n \"connections\": 2,\n \"total_connections\": 2,\n \"active_accounts\": 1,\n \"subscriptions\": 10,\n \"sent\": {\n \"msgs\": 7,\n \"bytes\": 2761\n },\n \"received\": {\n \"msgs\": 0,\n \"bytes\": 0\n },\n \"slow_consumers\": 0\n }\n}'\n\n$SYS.SERVER..STATSZ - Requesting Server Stats Summary\nIf you know the server id for a particular server (such as from a response to $SYS.REQ.SERVER.PING), you can query the specific server for its health information:\nnats-req -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds \\$SYS.REQ.SERVER.NC7AKPQRC6CIZGWRJOTVFIGVSL7VW7WXTQCTUJFNG7HTCMCKQTGE5PUL.STATSZ \"\"\nPublished [$SYS.REQ.SERVER.NC7AKPQRC6CIZGWRJOTVFIGVSL7VW7WXTQCTUJFNG7HTCMCKQTGE5PUL.STATSZ] : ''\nReceived [_INBOX.DQD44ugVt0O4Ur3pWIOOD1.WQOBevoq] : '{\n \"server\": {\n \"host\": \"0.0.0.0\",\n \"id\": \"NC7AKPQRC6CIZGWRJOTVFIGVSL7VW7WXTQCTUJFNG7HTCMCKQTGE5PUL\",\n \"ver\": \"2.0.0-RC5\",\n \"seq\": 25,\n \"time\": \"2019-05-03T14:34:02.066077-05:00\"\n },\n \"statsz\": {\n \"start\": \"2019-05-03T14:32:19.969037-05:00\",\n \"mem\": 11874304,\n \"cores\": 20,\n \"cpu\": 0,\n \"connections\": 2,\n \"total_connections\": 4,\n \"active_accounts\": 1,\n \"subscriptions\": 10,\n \"sent\": {\n \"msgs\": 26,\n \"bytes\": 9096\n },\n \"received\": {\n \"msgs\": 2,\n \"bytes\": 0\n },\n \"slow_consumers\": 0\n }\n}'\n\n"},"nats_docker/":{"url":"nats_docker/","title":"NATS and Docker","keywords":"","body":"NATS Server Containerization\nThe NATS server is provided as a Docker image on Docker Hub that you can run using the Docker daemon. The NATS server Docker image is extremely lightweight, coming in under 10 MB in size.\nSynadia actively maintains and supports the NATS server Docker image.\nUsage\nTo use the Docker container image, install Docker and pull the public image:\n> docker pull nats\n\nRun the NATS server image:\n> docker run -d --name nats-main nats\n\nBy default the NATS server exposes multiple ports:\n\n4222 is for clients.\n8222 is an HTTP management port for information reporting.\n6222 is a routing port for clustering.\nUse -p or -P to customize.\n\nFor example:\n$ docker run -d --name nats-main nats\n[INF] Starting nats-server version 0.6.6\n[INF] Starting http monitor on port 8222\n[INF] Listening for route connections on 0.0.0.0:6222\n[INF] Listening for client connections on 0.0.0.0:4222\n[INF] nats-server is ready\n\nTo run with the ports exposed on the host:\n> docker run -d -p 4222:4222 -p 6222:6222 -p 8222:8222 --name nats-main nats\n\nTo run a second server and cluster them together:\n> docker run -d --name=nats-2 --link nats-main nats --routes=nats-route://ruser:T0pS3cr3t@nats-main:6222\n\nNOTE Since the Docker image protects routes using credentials we need to provide them above. Extracted from Docker image configuration\n# Routes are protected, so need to use them with --routes flag\n# e.g. --routes=nats-route://ruser:T0pS3cr3t@otherdockerhost:6222\nauthorization {\n user: ruser\n password: T0pS3cr3t\n timeout: 2\n}\n\nTo verify the routes are connected:\n$ docker run -d --name=nats-2 --link nats-main nats --routes=nats-route://ruser:T0pS3cr3t@nats-main:6222 -DV\n[INF] Starting nats-server version 0.6.6\n[INF] Starting http monitor on port 8222\n[INF] Listening for route connections on :6222\n[INF] Listening for client connections on 0.0.0.0:4222\n[INF] nats-server is ready\n[DBG] Trying to connect to route on nats-main:6222\n[DBG] 172.17.0.52:6222 - rid:1 - Route connection created\n[DBG] 172.17.0.52:6222 - rid:1 - Route connect msg sent\n[DBG] 172.17.0.52:6222 - rid:1 - Registering remote route \"ee35d227433a738c729f9422a59667bb\"\n[DBG] 172.17.0.52:6222 - rid:1 - Route sent local subscriptions\n\nClustering With Docker\nBelow is are a couple examples of how to setup nats-server cluster using Docker. We put 3 different configurations (one per nats-server server) under a folder named conf as follows:\n|-- conf\n |-- nats-server-A.conf\n |-- nats-server-B.conf\n |-- nats-server-C.conf\n\nEach one of those files have the following content below: (Here I am using ip 192.168.59.103 as an example, so just replace with the proper ip from your server)\nExample 1: Setting up a cluster on 3 different servers provisioned beforehand\nIn this example, the three servers are started with config files that know about the other servers.\nnats-server-A\n# Cluster Server A\n\nport: 7222\n\ncluster {\n host: '0.0.0.0'\n port: 7244\n\n routes = [\n nats-route://192.168.59.103:7246\n nats-route://192.168.59.103:7248\n ]\n}\n\nnats-server-B\n# Cluster Server B\n\nport: 8222\n\ncluster {\n host: '0.0.0.0'\n port: 7246\n\n routes = [\n nats-route://192.168.59.103:7244\n nats-route://192.168.59.103:7248\n ]\n}\n\nnats-server-C\n# Cluster Server C\n\nport: 9222\n\ncluster {\n host: '0.0.0.0'\n port: 7248\n\n routes = [\n nats-route://192.168.59.103:7244\n nats-route://192.168.59.103:7246\n ]\n}\n\nTo start the containers, on each one of your servers, you should be able to start the nats-server image as follows:\ndocker run -it -p 0.0.0.0:7222:7222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 7222 -D -V\n\ndocker run -it -p 0.0.0.0:8222:8222 -p 0.0.0.0:7246:7246 --rm -v $(pwd)/conf/nats-server-B.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 8222 -D -V\ndocker run -it -p 0.0.0.0:9222:9222 -p 0.0.0.0:7248:7248 --rm -v $(pwd)/conf/nats-server-C.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 9222 -D -V\nExample 2: Setting a nats-server cluster one by one\nIn this scenario:\n\nWe bring up A and get its ip (nats-route://192.168.59.103:7244)\nThen create B and then use address of A in its configuration.\nGet the address of B nats-route://192.168.59.104:7246 and create C and use the addresses of A and B.\n\nFirst, we create the Node A and start up a nats-server server with the following config:\n# Cluster Server A\n\nport: 4222\n\ncluster {\n host: '0.0.0.0'\n port: 7244\n\n}\n\ndocker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 4222 -D -V\n\nThen we proceed to create the next node. We realize that the first node has ip:port as 192.168.59.103:7244 so we add this to the routes configuration as follows:\n# Cluster Server B\n\nport: 4222\n\ncluster {\n host: '0.0.0.0'\n port: 7244\n\n routes = [\n nats-route://192.168.59.103:7244\n ]\n}\n\nThen start server B:\ndocker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-B.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 4222 -D -V\n\nFinally, we create another Node C. We now know the routes of A and B so we can add it to its configuration:\n# Cluster Server C\n\nport: 4222\n\ncluster {\n host: '0.0.0.0'\n port: 7244\n\n routes = [\n nats-route://192.168.59.103:7244\n nats-route://192.168.59.104:7244\n ]\n}\n\nThen start it:\ndocker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v $(pwd)/conf/nats-server-C.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 9222 -D -V\n\nTesting the Clusters\nNow, the following should work: make a subscription to Node A then publish to Node C. You should be able to to receive the message without problems.\nnats-sub -s \"nats://192.168.59.103:7222\" hello &\n\nnats-pub -s \"nats://192.168.59.105:7222\" hello world\n\n[#1] Received on [hello] : 'world'\n\n# GNATSD on Node C logs:\n[1] 2015/06/23 05:20:31.100032 [TRC] 192.168.59.103:7244 - rid:2 - \nTutorial\nSee the NATS Docker tutorial for more instructions on using the NATS server Docker image.\n"},"nats_docker/tutorial.html":{"url":"nats_docker/tutorial.html","title":"Tutorial","keywords":"","body":"NATS Docker Tutorial\nIn this tutorial you run the NATS server Docker image. The Docker image provides an instance of the NATS Server. Synadia actively maintains and supports the gnatsd Docker image. The NATS image is only 6 MB in size.\n1. Set up Docker.\nSee Get Started with Docker for guidance.\nThe easiest way to run Docker is to use the Docker Toolbox.\n2. Run the gnatsd Docker image.\n> docker run -p 4222:4222 -p 8222:8222 -p 6222:6222 --name gnatsd -ti nats:latest\n\n3. Verify that the NATS server is running.\nYou should see the following:\nUnable to find image 'nats:latest' locally\nlatest: Pulling from library/nats\n2d3d00b0941f: Pull complete \n24bc6bd33ea7: Pull complete \nDigest: sha256:47b825feb34e545317c4ad122bd1a752a3172bbbc72104fc7fb5e57cf90f79e4\nStatus: Downloaded newer image for nats:latest\n\nFollowed by this, indicating that the NATS server is running:\n[1] 2017/06/28 18:34:19.605144 [INF] Starting nats-server version 0.9.6\n[1] 2017/06/28 18:34:19.605191 [INF] Starting http monitor on 0.0.0.0:8222\n[1] 2017/06/28 18:34:19.605286 [INF] Listening for client connections on 0.0.0.0:4222\n[1] 2017/06/28 18:34:19.605312 [INF] Server is ready\n[1] 2017/06/28 18:34:19.608756 [INF] Listening for route connections on 0.0.0.0:6222\n\nNotice how quickly the NATS server Docker image downloads. It is a mere 6 MB in size.\n4. Test the NATS server to verify it is running.\nAn easy way to test the client connection port is through using telnet.\n> telnet localhost 4222\n\nExpected result:\nTrying ::1...\nConnected to localhost.\nEscape character is '^]'.\nINFO {\"server_id\":\"YMeTi2z178lM5SG302YgH2\",\"version\":\"0.9.6\",\"go\":\"go1.7.4\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"tls_required\":false,\"tls_verify\":false,\"max_payload\":1048576}\n\nYou can also test the monitoring endpoint, viewing http://localhost:8222 with a browser.\n"},"nats_docker/docker_swarm.html":{"url":"nats_docker/docker_swarm.html","title":"Docker Swarm","keywords":"","body":"Step 1:\nCreate an overlay network for the cluster (in this example, nats-cluster-example), and instantiate an initial NATS server.\nFirst create an overlay network:\n% docker network create --driver overlay nats-cluster-example\n\nNext instantiate an initial \"seed\" server for a NATS cluster listening for other servers to join route to it on port 6222:\n% docker service create --network nats-cluster-example --name nats-cluster-node-1 nats:1.0.0 -cluster nats://0.0.0.0:6222 -DV\n\nStep 2:\nThe 2nd step is to create another service which connects to the NATS server within the overlay network. Note that we connect to to the server at nats-cluster-node-1:\n% docker service create --name ruby-nats --network nats-cluster-example wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 -e '\n NATS.on_error do |e|\n puts \"ERROR: #{e}\"\n end\n NATS.start(:servers => [\"nats://nats-cluster-node-1:4222\"]) do |nc|\n inbox = NATS.create_inbox\n puts \"[#{Time.now}] Connected to NATS at #{nc.connected_server}, inbox: #{inbox}\"\n\n nc.subscribe(inbox) do |msg, reply|\n puts \"[#{Time.now}] Received reply - #{msg}\"\n end\n\n nc.subscribe(\"hello\") do |msg, reply|\n next if reply == inbox\n puts \"[#{Time.now}] Received greeting - #{msg} - #{reply}\"\n nc.publish(reply, \"world\")\n end\n\n EM.add_periodic_timer(1) do\n puts \"[#{Time.now}] Saying hi (servers in pool: #{nc.server_pool}\"\n nc.publish(\"hello\", \"hi\", inbox)\n end\n end'\n\nStep 3:\nNow you can add more nodes to the Swarm cluster via more docker services, referencing the seed server in the -routes parameter:\n% docker service create --network nats-cluster-example --name nats-cluster-node-2 nats:1.0.0 -cluster nats://0.0.0.0:6222 -routes nats://nats-cluster-node-1:6222 -DV\n\nIn this case, nats-cluster-node-1 is seeding the rest of the cluster through the autodiscovery feature. Now NATS servers nats-cluster-node-1 and nats-cluster-node-2 are clustered together.\nAdd in more replicas of the subscriber:\n% docker service scale ruby-nats=3\n\nThen confirm the distribution on the Docker Swarm cluster:\n% docker service ps ruby-nats\nID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR\n25skxso8honyhuznu15e4989m ruby-nats.1 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-1 Running Running 2 minutes ago \n0017lut0u3wj153yvp0uxr8yo ruby-nats.2 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-1 Running Running 2 minutes ago \n2sxl8rw6vm99x622efbdmkb96 ruby-nats.3 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-2 Running Running 2 minutes ago\n\nThe sample output after adding more NATS server nodes to the cluster, is below - and notice that the client is dynamically aware of more nodes being part of the cluster via auto discovery!\n[2016-08-15 12:51:52 +0000] Saying hi (servers in pool: [{:uri=>#, :was_connected=>true, :reconnect_attempts=>0}]\n[2016-08-15 12:51:53 +0000] Saying hi (servers in pool: [{:uri=>#, :was_connected=>true, :reconnect_attempts=>0}]\n[2016-08-15 12:51:54 +0000] Saying hi (servers in pool: [{:uri=>#, :was_connected=>true, :reconnect_attempts=>0}]\n[2016-08-15 12:51:55 +0000] Saying hi (servers in pool: [{:uri=>#, :was_connected=>true, :reconnect_attempts=>0}, {:uri=>#, :reconnect_attempts=>0}, {:uri=>#, :reconnect_attempts=>0}]\n\nSample output after adding more workers which can reply back (since ignoring own responses):\n[2016-08-15 16:06:26 +0000] Received reply - world\n[2016-08-15 16:06:26 +0000] Received reply - world\n[2016-08-15 16:06:27 +0000] Received greeting - hi - _INBOX.b8d8c01753d78e562e4dc561f1\n[2016-08-15 16:06:27 +0000] Received greeting - hi - _INBOX.4c35d18701979f8c8ed7e5f6ea\n\nAnd so forth...\nFrom here you can experiment adding to the NATS cluster by simply adding servers with new service names, that route to the seed server nats-cluster-node-1. As you've seen above, clients will automatically be updated to know that new servers are available in the cluster.\n% docker service create --network nats-cluster-example --name nats-cluster-node-3 nats:1.0.0 -cluster nats://0.0.0.0:6222 -routes nats://nats-cluster-node-1:6222 -DV\n\n"},"nats_streaming/nats-streaming-intro.html":{"url":"nats_streaming/nats-streaming-intro.html","title":"Basics","keywords":"","body":"NATS Streaming Concepts\nNATS Streaming is a data streaming system powered by NATS, and written in the Go programming language. The executable name for the NATS Streaming server is nats-streaming-server. NATS Streaming embeds, extends, and interoperates seamlessly with the core NATS platform. The NATS Streaming server is provided as open source software under the Apache-2.0 license. Synadia actively maintains and supports the NATS Streaming server.\n\ndigraph nats_streaming {\n graph [splines=ortho, nodesep=1];\n\n application [shape=\"record\", label=\"{Application Code | NATS Streaming Client API | NATS Client API}\"];\n\n subgraph cluster_nats_streaming_server {\n label=\"NATS Streaming Server\";\n labelloc=b;\n nats_server [shape=box, label=\"NATS Server\"];\n streaming_module [shape=box, label=\"Streaming Module\"];\n nats_server -> streaming_module [penwidth=2, dir=\"both\"];\n\n {\n rank=same\n nats_server streaming_module\n }\n }\n\n storage [shape=box, style=\"rounded\", label=\"storage\"];\n\n application:nats -> nats_server [penwidth=2, dir=\"both\"];\n streaming_module -> storage [penwidth=2, dir=\"both\"];\n}\n\n\nFeatures\nIn addition to the features of the core NATS platform, NATS Streaming provides the following:\n\nEnhanced message protocol - NATS Streaming implements its own enhanced message format using [Google Protocol Buffers] (https://developers.google.com/protocol-buffers/). These messages are transmitted as binary message payloads via core NATS platform, and thus require no changes to the basic NATS protocol. NATS Streaming messages contain the following fields:\nSequence - a globally ordered sequence number for the subject's channel\nSubject - The NATS Streaming delivery subject\nReply - The optional \"reply-to\" subject\nData - The message payload\nTimestamp - the received timestamp, in nanoseconds.\nRedelivered - A flag signifying whether this message has been redelivered by the server\nCRC32 - An optional IEEE CRC32\n\n\nMessage/event persistence - NATS Streaming offers configurable message persistence either in-memory or via flat files. The storage subsystem uses a public interface that allows contributors to develop their own custom implementations.\nAt-least-once-delivery - NATS Streaming offers message acknowledgements between publisher and server (for publish operations) and between subscriber and server (to confirm message delivery). Messages are persisted by the server in memory or secondary storage (or other external storage) and will be redelivered to eligible subscribing clients as needed.\nPublisher rate limiting - NATS Streaming provides a connection option called MaxPubAcksInFlight that effectively limits the number of unacknowledged messages that a publisher may have in-flight at any given time. When this maximum is reached, further async publish calls will block until the number of unacknowledged messages falls below the specified limit.\nRate matching/limiting per subscriber - Subscriptions may specify a MaxInFlight option that designates the maximum number of outstanding acknowledgements (messages that have been delivered but not acknowledged) that NATS Streaming will allow for a given subscription. When this limit is reached, NATS Streaming will suspend delivery of messages to this subscription until the number of unacknowledged messages falls below the specified limit.\nHistorical message replay by subject - New subscriptions may specify a start position in the stream of messages stored for the subscribed subject's channel. By using this option, message delivery may begin at:\nThe earliest message stored for this subject\nThe most recently stored message for this subject, prior to the start of the current subscription. This is commonly thought of as \"last value\" or \"initial value\" caching.\nA specific date/time in nanoseconds\nAn historical offset from the current server date/time, e.g. the last 30 seconds.\nA specific message sequence number\n\n\nDurable subscriptions - Subscriptions may also specify a \"durable name\" which will survive client restarts. Durable subscriptions cause the server to track the last acknowledged message sequence number for a client and durable name. When the client restarts/resubscribes, and uses the same client ID and durable name, the server will resume delivery beginning with the earliest unacknowledged message for this durable subscription.\n\nInstallation\nNATS provides a server binary for Linux, Mac, and Windows. You can install the server from source on any platform you choose.\nUsage, Configuration and Administration\nNATS Streaming provides a rich set of commands and parameters to configure all aspects of the server. Please refer to the README for further info on usage, configuration, and administration.\n"},"nats_streaming/nats-streaming-install.html":{"url":"nats_streaming/nats-streaming-install.html","title":"Installing","keywords":"","body":"Install and Run NATS Streaming Server\nIn this tutorial you install and run the NATS Streaming server (nats-streaming-server). \nYou can follow this same procedure anytime you want to run the NATS Streaming server.\nInstall the NATS Streaming server\nThere are numerous ways to install the NATS Streaming server.\nGitHub releases\nThe latest official release binaries are always available on the GitHub releases page. \nThe following platforms are available:\n\nLinux (x86, x86_64, ARM)\nWindows (x86, x86_64)\nmacOS\n\nThe following methods may also be used. Please note that these methods may not install the latest released version:\nGo\nMake sure your Go environment is set up\n% go get github.com/nats-io/nats-streaming-server\n\nNote that this method may not install the latest released version.\nDocker Hub\nThe latest official Docker image is always available on Docker Hub.\nWindows\nOn Windows, the NATS Streaming server can also be installed via Chocolatey:\n% choco install nats-streaming-server\n\nmacOS\nOn macOS, the NATS Streaming server can be installed via Homebrew:\n% brew install nats-streaming-server\n\nStart the NATS Streaming server\nYou can invoke the NATS Streaming server binary, with no options and no configuration file, to start a server with acceptable standalone defaults (no authentication, no clustering).\n% nats-streaming-server\n\nWhen the server starts successfully, you will see that the NATS Streaming server listens for client connections on TCP Port 4222:\n[18085] 2016/10/31 13:11:44.059012 [INF] Starting nats-streaming-server[test-cluster] version 0.3.1\n[18085] 2016/10/31 13:11:44.059830 [INF] Starting nats-server version 0.9.4\n[18085] 2016/10/31 13:11:44.061544 [INF] Listening for client connections on 0.0.0.0:4222\n[18085] 2016/10/31 13:11:44.061966 [INF] Server is ready\n[18085] 2016/10/31 13:11:44.396819 [INF] STAN: Message store is MEMORY\n[18085] 2016/10/31 13:11:44.396832 [INF] STAN: --------- Store Limits ---------\n[18085] 2016/10/31 13:11:44.396837 [INF] STAN: Channels: 100 *\n[18085] 2016/10/31 13:11:44.396839 [INF] STAN: -------- channels limits -------\n[18085] 2016/10/31 13:11:44.396842 [INF] STAN: Subscriptions: 1000 *\n[18085] 2016/10/31 13:11:44.396844 [INF] STAN: Messages : 1000000 *\n[18085] 2016/10/31 13:11:44.396855 [INF] STAN: Bytes : 976.56 MB *\n[18085] 2016/10/31 13:11:44.396858 [INF] STAN: Age : unlimited *\n[18085] 2016/10/31 13:11:44.396859 [INF] STAN: --------------------------------\n\nStart the NATS Streaming Server with NATS monitoring enabled (optional)\nThe NATS Streaming server exposes the monitoring interface of its embedded NATS Server (nats-server) on port 8222.\n% nats-streaming-server -m 8222\n\nIf you run the NATS Streaming server with monitoring enabled, you see the following messages:\n[18122] 2016/10/31 13:13:10.048663 [INF] Starting nats-streaming-server[test-cluster] version 0.3.1\n[18122] 2016/10/31 13:13:10.048843 [INF] Starting nats-server version 0.9.4\n[18122] 2016/10/31 13:13:10.048890 [INF] Starting http monitor on 0.0.0.0:8222\n[18122] 2016/10/31 13:13:10.048968 [INF] Listening for client connections on 0.0.0.0:4222\n[18122] 2016/10/31 13:13:10.048992 [INF] Server is ready\n[18122] 2016/10/31 13:13:10.388282 [INF] STAN: Message store is MEMORY\n[18122] 2016/10/31 13:13:10.388301 [INF] STAN: --------- Store Limits ---------\n[18122] 2016/10/31 13:13:10.388309 [INF] STAN: Channels: 100 *\n[18122] 2016/10/31 13:13:10.388312 [INF] STAN: -------- channels limits -------\n[18122] 2016/10/31 13:13:10.388316 [INF] STAN: Subscriptions: 1000 *\n[18122] 2016/10/31 13:13:10.388319 [INF] STAN: Messages : 1000000 *\n[18122] 2016/10/31 13:13:10.388333 [INF] STAN: Bytes : 976.56 MB *\n[18122] 2016/10/31 13:13:10.388338 [INF] STAN: Age : unlimited *\n[18122] 2016/10/31 13:13:10.388341 [INF] STAN: --------------------------------\n\n"},"nats_streaming/nats-streaming-tls.html":{"url":"nats_streaming/nats-streaming-tls.html","title":"Securing","keywords":"","body":"Securing NATS Streaming Server\nAuthenticating users\nTo enable user authentication from the command line, you can use the same mechanism as the NATS Server (nats-server). You pass in the โ€”user and โ€”pass commands, or --auth parameters, and the NATS streaming server will automatically use these credentials. Or you can use a configuration file with a single user or token.\nWhen using a configuration file with multi-user authorization, you must use the โ€”user and โ€”pass parameters with the NATS streaming server, matching a user in the configuration file, in order to specify which user the NATS streaming server should authenticate with to it's embedded NATS server.\nFor example, if you pass the NATS streaming server a file with a several users, you must run the streaming server as a user such as \"Joe\" who is defined in the configuration file.\nUsing TLS\nWhile there are several TLS related parameters for the NATS Streaming server, securing the server's connection is straightforward. However, bear in mind that the NATS Streaming server embeds the NATS server resulting in a client-server relationship where the NATS Streaming server is a client of it's embedded NATS server.\nThat means two sets of TLS configuration parameters must be used: TLS server parameters for the embedded NATS server, and TLS client parameters for the NATS Streaming server itself.\nThe streaming server specifies it's TLS client certificates with the following three parameters:\n-tls_client_key Client key for the streaming server\n-tls_client_cert Client certificate for the streaming server\n-tls_client_cacert Client certificate CA for the streaming server\n\nThese could be the same certificates used with your NATS streaming clients.\nThe embedded NATS server specifies TLS server certificates with these:\n--tlscert Server certificate file\n--tlskey Private key for server certificate\n--tlscacert Client certificate CA for verification\n\nThe server parameters are used the same way you'd secure a typical NATS server.\nProper usage of the NATS Streaming Server requires the use of both client and server parameters.\nFor example:\n% nats-streaming-server -tls_client_cert client-cert.pem -tls_client_key client-key.pem -tls_client_cacert ca.pem -tlscert server-cert.pem -tlskey server-key.pem -tlscacert ca.pem\n\nFurther TLS related functionality can be found in Securing NATS > TLS. Note that if specifying cipher suites is required, a configuration file for the embedded NATS server can be passed through the -config command line parameter.\n"},"nats_streaming/nats-streaming-protocol.html":{"url":"nats_streaming/nats-streaming-protocol.html","title":"Protocol","keywords":"","body":"NATS Streaming Protocol\nThe NATS streaming protocol sits atop the core NATS protocol and uses Google's Protocol Buffers. Protocol buffer messages are marshaled into bytes and published as NATS messages on specific subjects described below. In communicating with the NATS Streaming Server, the NATS request/reply pattern is used for all protocol messages that have a corresponding reply.\nNATS streaming protocol conventions\nSubject names: Subject names, including reply subject (INBOX) names, are case-sensitive and must be non-empty alphanumeric strings with no embedded whitespace, and optionally token-delimited using the dot character (.), e.g.:\nFOO, BAR, foo.bar, foo.BAR, FOO.BAR and FOO.BAR.BAZ are all valid subject names\nFOO. BAR, foo. .bar andfoo..bar are *not- valid subject names\nWildcards: NATS streaming does *not- support wildcards in subject subscriptions\nProtocol definition: The fields of NATS streaming protocol messages are defined in the go-nats-streaming protocol file.\nNATS streaming protocol messages\nThe following table briefly describes the NATS streaming protocol messages.\nClick the name to see more detailed information, including usage:\n\n\n\nMessage Name\nSent By\nDescription\n\n\n\n\nConnectRequest\nClient\nRequest to connect to the NATS Streaming Server\n\n\nConnectResponse\nServer\nResult of a connection request\n\n\nSubscriptionRequest\nClient\nRequest sent to subscribe and retrieve data\n\n\nSubscriptionResponse\nServer\nResult of a subscription request\n\n\nUnsubscribeRequest\nClient\nUnsubscribe from a subject\n\n\nPubMsg\nClient\nPublish a message to a subject, with optional reply subject\n\n\nPubAck\nServer\nAn acknowledgement that a published message has been processed on the server\n\n\nMsgProto\nServer\nA message from the NATS Streaming Server to a subscribing client\n\n\nAck\nClient\nAcknowledges that a message has been received\n\n\nCloseRequest\nClient\nRequest sent to close the connection to the NATS Streaming Server\n\n\nCloseResp\nServer\nResult of the close request\n\n\n\nThe following sections explain each protocol message.\nConnectRequest\nDescription\nA connection request is sent when a streaming client connects to the NATS Streaming Server. The connection request contains a unique identifier representing the client, and an inbox subject the client will listen on for incoming heartbeats. The identifier *must- be unique; a connection attempt with an identifier currently in use will fail. The inbox subject is the subject where the client receives incoming heartbeats, and responds by publishing an empty NATS message to the reply subject, indicating it is alive. The NATS Streaming Server will return a ConnectResponse message to the reply subject specified in the NATS request message.\nThis request is published to a subject comprised of the .cluster-id, for example, if a NATS Streaming Server was started with a cluster-id of mycluster, and the default prefix was used, the client publishes to _STAN.discover.mycluster\nMessage Structure\n\nclientID: A unique identifier for a client\nheartbeatInbox: An inbox to which the NATS Streaming Server will send heartbeats for the client to process\n\nConnectResponse\nDescription\nAfter a ConnectRequest is published, the NATS Streaming Server responds with this message on the reply subject of the underlying NATS request. The NATS Streaming Server requires the client to make requests and publish messages on certain subjects (described above), and when a connection is successful, the client saves the information returned to be used in sending other NATS streaming protocol messages. In the event the connection was not successful, an error is returned in the error field.\nMessage Structure\n\npubPrefix: Prefix to use when publishing\nsubRequests: Subject used for subscription requests\nunsubRequests: Subject used for unsubscribe requests\ncloseRequests: Subject for closing a connection\nerror: An error string, which will be empty/omitted upon success\npublicKey: Reserved for future use\n\nSubscriptionRequest\nDescription\nA SubscriptionRequest is published on the subject returned in the subRequests field of a ConnectResponse, and creates a subscription to a subject on the NATS Streaming Server. This will return a SubscriptionResponse message to the reply subject specified in the NATS protocol request message.\nMessage Structure\n\nclientID: Client ID originally provided in the ConnectRequest\nsubject: Formal subject to subscribe to, e.g. foo.bar\nqGroup: Optional queue group\ninbox: Inbox subject to deliver messages on\nmaxInFlight: Maximum inflight messages without an acknowledgement allowed\nackWaitInSecs: Timeout for receiving an acknowledgement from the client\ndurableName: Optional durable name which survives client restarts\nstartPosition: An enumerated type specifying the point in history to start replaying data\nstartSequence: Optional start sequence number\nstartTimeDelta: Optional start time\n\nStartPosition enumeration\n\nNewOnly: Send only new messages\nLastReceived: Send only the last received message\nTimeDeltaStart: Send messages from duration specified in the startTimeDelta field.\nSequenceStart: Send messages starting from the sequence in the startSequence field.\nFirst: Send all available messages\n\nSubscriptionResponse\nDescription\nThe SubscriptionResponse message is the response from the SubscriptionRequest. After a client has processed an incoming MsgProto message, it must send an acknowledgement to the ackInbox subject provided here.\nMessage Structure\n\nackInbox: subject the client sends message acknowledgements to the NATS Streaming Server\nerror: error string, empty/omitted if no error\n\nUnsubscribeRequest\nDescription\nThe UnsubscribeRequest unsubcribes the connection from the specified subject. The inbox specified is the inbox returned from the NATS Streaming Server in the SubscriptionResponse.\nMessage Structure\n\nclientID: Client ID originally provided in the ConnectRequest\nsubject: Subject for the subscription\ninbox: Inbox subject to identify subscription\ndurableName: Optional durable name which survives client restarts\n\nPubMsg\nDescription\nThe PubMsg protocol message is published from a client to the NATS Streaming Server. The GUID must be unique, and is returned in the PubAck message to correlate the success or failure of storing this particular message.\nMessage Structure\n\nclientID: Client ID originally provided in the ConnectRequest\nguid: a guid generated for this particular message\nsubject: subject\nreply: optional reply subject\ndata: payload\nsha256: optional sha256 of payload data\n\nPubAck\nDescription\nThe PubAck message is an acknowledgement from the NATS Streaming Server that a message has been processed. The message arrives on the subject specified on the reply subject of the NATS message the PubMsg was published on. The GUID is the same GUID used in the PubMsg being acknowledged. If an error string is present, the message was not persisted by the NATS Streaming Server and no guarantees regarding persistence are honored. PubAck messages may be handled asynchronously from their corresponding PubMsg in the client.\nMessage Structure\n\nguid: GUID of the message being acknowledged by the NATS Streaming Server\nerror: An error string, empty/omitted if no error\n\nMsgProto\nDescription\nThe MsgProto message is received by client from the NATS Streaming Server, containing the payload of messages sent by a publisher. A MsgProto message that is not acknowledged with an Ack message within the duration specified by the ackWaitInSecs field of the subscription request will be redelivered.\nMessage Structure\n\nsequence: Globally ordered sequence number for the subject's channel\nsubject: Subject\nreply: Optional reply\ndata: Payload\ntimestamp: Time the message was stored in the server.\nredelivered: Flag specifying if the message is being redelivered\nCRC32: Optional IEEE CRC32\n\nAck\nDescription\nAn Ack message is an acknowledgement from the client that a MsgProto message has been considered received. It is published to the ackInbox field of the SubscriptionResponse.\nMessage Structure\n\nsubject: Subject of the message being acknowledged\nsequence: Sequence of the message being acknowledged\n\nCloseRequest\nDescription\nA CloseRequest message is published on the closeRequests subject from the ConnectResponse, and notifies the NATS Streaming Server that the client connection is closing, allowing the server to free up resources. This message should *always- be sent when a client is finished using a connection.\nMessage Structure\n\nclientID: Client ID originally provided in the ConnectRequest\n\nCloseResponse\nDescription\nThe CloseResponse is sent by the NATS Streaming Server on the reply subject of the CloseRequest NATS message. This response contains any error that may have occurred with the corresponding close call.\nMessage Structure\n\nerror: error string, empty/omitted if no error\n\n"},"nats_streaming/nats-streaming-swarm.html":{"url":"nats_streaming/nats-streaming-swarm.html","title":"Docker Swarm","keywords":"","body":"Using NATS Streaming with Docker Swarm\nStep 1:\nCreate an overlay network for the NATS & NATS Streaming cluster (in this example, nats-streaming-example).\nNotice we added the --attachable option which will allow other containers to join the network which will be\ndone at the end to confirm that can connect to the cluster.\n% docker network create --driver overlay --attachable nats-streaming-example\n\nStep 2:\nNext create the NATS cluster which will be used by the NATS Streaming cluster.\nfor i in `seq 1 3`; do\n sudo docker service create --network nats-streaming-example \\\n --name nats-cluster-node-$i nats:1.1.0 \\\n -cluster nats://0.0.0.0:6222 \\\n -routes nats://nats-cluster-node-1:6222,nats://nats-cluster-node-2:6222,nats://nats-cluster-node-3:6222\ndone\n\nStep 3:\nNow that there is a NATS cluster available to connect, create the NATS Streaming cluster of three nodes as follows:\nfor i in `seq 1 3`; do\n sudo docker service create --network nats-streaming-example \\\n --name nats-streaming-node-$i nats-streaming:0.9.2 \\\n -store file -dir store -clustered -cluster_id swarm -cluster_node_id node-$i \\\n -cluster_peers node-1,node-2,node-3 \\\n -nats_server nats://nats-cluster-node-1:4222,nats://nats-cluster-node-2:4222,nats://nats-cluster-node-3:4222\ndone\n\nStep 4:\nNext, confirm that it is possible to publish and replay messages via NATS Streaming by attaching a container\nto the same network where both NATS and NATS Streaming exist. Below you can find an example session of doing so,\nnote that even though the client is only connecting to nats://nats-cluster-node-1:4222 the NATS cluster will\nbe routing the messages so that they will be processed to the NATS Streaming cluster service.\n$ sudo docker run --network nats-streaming-example -it golang:latest\n\nroot@d12f9f3fcdde:/go# cd src/github.com/nats-io/go-nats-streaming/\n\n# Publishing 3 messages\nroot@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-pub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm hello world\nPublished [hello] : 'world'\nroot@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-pub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm hello world\nPublished [hello] : 'world'\nroot@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-pub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm hello world\nPublished [hello] : 'world'\n\n# Replaying the messages from the beginning\nroot@d12f9f3fcdde:/go/src/github.com/nats-io/go-nats-streaming# go run examples/stan-sub/main.go -s nats://nats-cluster-node-1:4222 --cluster swarm -id $RANDOM --all hello\nConnected to nats://nats-cluster-node-1:4222 clusterID: [swarm] clientID: [17010]\nsubscribing with DeliverAllAvailable\nListening on [hello], clientID=[17010], qgroup=[] durable=[]\n[#1] Received on [hello]: 'sequence:1 subject:\"hello\" data:\"world\" timestamp:1526948600795366785 '\n[#2] Received on [hello]: 'sequence:2 subject:\"hello\" data:\"world\" timestamp:1526948604613783399 '\n[#3] Received on [hello]: 'sequence:3 subject:\"hello\" data:\"world\" timestamp:1526948606124258269 '\n\n"},"nats_tools/mkpasswd.html":{"url":"nats_tools/mkpasswd.html","title":"mkpasswd","keywords":"","body":"mkpasswd: Protect Passwords with bcrypt\nThe server supports hashing of passwords and authentication tokens using bcrypt. To take advantage of this, simply replace the plaintext password in the configuration with its bcrypt hash, and the server will automatically utilize bcrypt as needed.\nA utility for creating bcrypt hashes is included with the nats-server distribution (util/mkpasswd.go). Running it with no arguments will generate a new secure password along with the associated hash. This can be used for a password or a token in the configuration.\nInstalling mkpasswd\nIf you have go installed, you can easily install the mkpasswd tool by doing:\n> go get github.com/nats-server/util/mkpasswd\nAlternatively, you can: \n> git clone git@github.com:nats-io/nats-server\n> cd nats-server/util/mkpasswd\n> go install mkpasswd.go\nGenerating bcrypted passwords\nWith mkpasswd installed:\n> mkpasswd\npass: #IclkRPHUpsTmACWzmIGXr\nbcrypt hash: $2a$11$3kIDaCxw.Glsl1.u5nKa6eUnNDLV5HV9tIuUp7EHhMt6Nm9myW1aS\nIf you already have a password selected, you can supply the -p flag on the command line, enter your desired password, and a bcrypt hash will be generated for it:\n> mkpasswd -p\nEnter Password: *******\nReenter Password: ******\nbcrypt hash: $2a$11$3kIDaCxw.Glsl1.u5nKa6eUnNDLV5HV9tIuUp7EHhMt6Nm9myW1aS\nTo use the password on the server, add the hash into the server configuration file's authorization section.\n authorization {\n user: derek\n password: $2a$11$3kIDaCxw.Glsl1.u5nKa6eUnNDLV5HV9tIuUp7EHhMt6Nm9myW1aS\n }\nNote the client will still have to provide the plain text version of the password, the server however will only store the hash to verify that the password is correct when supplied.\n"},"nats_tools/nk.html":{"url":"nats_tools/nk.html","title":"nk","keywords":"","body":"NK\nnk is a command line tool that generates nkeys. NKeys are a highly secure public-key signature system based on Ed25519.\nWith NKeys the server can verify identity without ever storing secrets on the server. The authentication system works by requiring a connecting client to provide its public key and digitally sign a challenge with its private key. The server generates a random challenge with every connection request, making it immune to playback attacks. The generated signature is validated a public key, thus proving the identity of the client. If the public key validation succeeds, authentication succeeds.\n\nNKey is an awesome replacement for token authentication, because a connecting client will have to prove it controls the private key for the authorized public key.\n\nInstalling nk\nTo get started with NKeys, youโ€™ll need the nk tool from https://github.com/nats-io/nkeys/nk repository. If you have go installed, enter the following at a command prompt:\n> go get github.com/nats-io/nk\n\nGenerating NKeys and Configuring the Server\nTo generate a User NKEY:\n> nk -gen user -pubout\nSUACSSL3UAHUDXKFSNVUZRF5UHPMWZ6BFDTJ7M6USDXIEDNPPQYYYCU3VY\nUDXU4RCSJNZOIQHZNWXHXORDPRTGNJAHAHFRGZNEEJCPQTT2M7NLCNF4\nThe first output line starts with the letter S for Seed. The second letter U stands for User. Seeds are private keys; you should treat them as secrets and guard them with care.\nThe second line starts with the letter U for User, and is a public key which can be safely shared. \n"},"nats_tools/nsc/":{"url":"nats_tools/nsc/","title":"nsc","keywords":"","body":"NATS Account Configuration\nNATS account configurations are built using the nsc tool. The NSC tool allows you to:\n\nCreate and Edit Operators, Accounts, Users\nManage subscribe and publish permissions for Users\nAdd and delete Exports and Imports\nGenerate Activations\nGenerate User credential files\nDescribe Operators, Accounts, Users, and Activations\n\nInstallation\nInstalling nsc is easy:\ncurl -L https://raw.githubusercontent.com/nats-io/nsc/master/install.py | python\n\nThe script will download the latest version of nsc and install it into your system. \nTutorials\nYou can find various task-oriented tutorials to working with the tool here:\n\nBasic Usage\nConfiguring Streams\nConfiguring Services\nSigning Keys\n\nTool Documentation\nFor more specific browsing of the tool syntax, check out the nsc tool documentation.\nIt can be found within the tool itself:\n> nsc help\n\nOr an online version here\n"},"nats_tools/nsc/nsc.html":{"url":"nats_tools/nsc/nsc.html","title":"Basics","keywords":"","body":"NSC\nNATS uses JWTs to armor the various identity and authorization artifacts. These JWTs are created with the nsc tool. NSC simplifies the tasks of creating and managing identities and other JWT artifacts.\nThereโ€™s a logical hierarchy to the entities:\n\nOperators are responsible for running nats-servers, and signing account JWTs that set the limits on what an account can do, such as the number of connections, data limits, etc.\n\nAccounts are responsible for issuing user JWTs, and for declaring what subjects can be exported to other accounts, and what subjects they import from other accounts and what the local subjects for those imports are.\n\nUsers are issued by an account, and encode limits regarding usage and authorization over the subject space.\n\n\nNSC allows you to create, edit, delete these entities, and will be central to all account based configuration.\nIn this guide, youโ€™ll run end-to-end on some of the configuration scenarios:\n\ngenerate JWTs\nmake JWTs accessible to a nats-server\nconfigure a nats-server to use JWTs\n\nLetโ€™s run through the process of creating some identities and JWTs and work through the process.\nBy default JWTs are written to ~/.nsc and secrets to ~/.nkeys. You can easily change those locations by setting NSC_HOME and NKEYS_PATH respectively in your environment to your desired locations.\n\nThe $NKEYS_PATH stores secrets. Since nkeys relies on cryptographic signatures to prove identity, anyone with access to your private keys will be able to assume your identity. With that said, treat them as secrets and guard them carefully.\n\nLetโ€™s see what settings nsc has in its environment:\n> nsc env\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ NSC Environment โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Setting โ”‚ Set โ”‚ Effective Value โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ $NKEYS_PATH โ”‚ No โ”‚ ~/.nkeys โ”‚\nโ”‚ $NSC_HOME โ”‚ No โ”‚ ~/.nsc โ”‚\nโ”‚ Config โ”‚ โ”‚ ~/.nsc/nsc.json โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Stores Dir โ”‚ โ”‚ ~/.nsc/nats โ”‚\nโ”‚ Default Operator โ”‚ โ”‚ โ”‚\nโ”‚ Default Account โ”‚ โ”‚ โ”‚\nโ”‚ Default Cluster โ”‚ โ”‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nBy default youโ€™ll see that generated secrets are stored in ~/.nkeys, and configurations in ~/.nsc/nats. All operations are assumed to be in a context of the current operator and current account. When working with multiple operators and accounts you may need to set the current one. You can easily do so by issuing the nsc env and provide flags to set the current operator or account. See nsc env โ€”help for more details.\nCreating an Operator\nLetโ€™s create an operator called Test:\n> nsc add operator -n Test\nGenerated operator key - private key stored โ€œ~/.nkeys/Test/Test.nkโ€\nSuccess! - added operator \"Test\"\n\nWith the above incantation, the tool generated an NKEY for the operator, stored the private key safely in ~/.nkeys/Test/Test.nk. The file contains a single line, with the seed value for the NKEY.\n\nYou can tell the key is a seed if it starts with the letter S. The type of the key is will be the second letter an O, A or U for Operator, Account or User. If the key does not start with an S you have instead a public key.\n\nThe tool also created a JWT with all default settings for the operator test, and stored it in ~/.nsc/nats/Test/Test.jwt. The ~/.nsc/nats/Test directory will also contain a directory where accounts related to this operator will live.\nYou can view the JWT by entering the command:\n> nsc describe operator\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Operator Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Test โ”‚\nโ”‚ Operator ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-24 19:48:55 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nNote that the Operator ID is truncated to simplify the output, to get the full ID, do:\n> nsc describe operator -W\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Operator Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Test โ”‚\nโ”‚ Operator ID โ”‚ OAYI3YUZSWDNMERD2IN3HZSIP3JA2E3VDTXSTEVOIII273XL2NABJP64 โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDNMERD2IN3HZSIP3JA2E3VDTXSTEVOIII273XL2NABJP64 โ”‚\nโ”‚ Issued โ”‚ 2019-04-24 19:48:55 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nWith an operator, we are ready to create our first account.\nCreating an Account\nLetโ€™s create an account called TestAccount:\n> nsc add account -n TestAccount\nGenerated account key - private key stored โ€œ~/.nkeys/Test/accounts/TestAccount/TestAccount.nk\"\nSuccess! - added account \"TestAccount\"\nAs we did with the operator, we can describe the account:\n> nsc describe account \nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ TestAccount โ”‚\nโ”‚ Account ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-24 19:58:01 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Imports โ”‚ None โ”‚\nโ”‚ Exports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nAgain, specifying the -W flag will print the complete account ID (the public key identifying the account).\nNote that the issuer for the account is the ID for the operator (the public key identifying the operator).\nNow we are ready to add a user.\nCreating a User\nLetโ€™s add a user named โ€˜TestUserโ€™:\n> nsc add user -n TestUser\nGenerated user key - private key stored \"~/.nkeys/Test/accounts/TestAccount/users/TestUser.nk\"\nGenerated user creds file \"~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds\"\nSuccess! - added user \"TestUser\" to \"TestAccount\"\n\nNote that when we added the user, we got a message telling us about a .creds file being created. The .creds file contains the JWT describing the user, and the private (seed) key for the user. This file is formatted in a special way for use by nats client libraries. Client libraries can extract the JWT and seed key, and connect to a server expecting JWT authentication, provide the JWT and use the private key to sign the nonce to verify its identity.\nAnd letโ€™s describe it:\n> nsc describe user\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ User โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ TestUser โ”‚\nโ”‚ User ID โ”‚ UCQB7NONBKRC โ”‚\nโ”‚ Issuer ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issued โ”‚ 2019-04-24 20:36:25 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Messages โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Network Src โ”‚ Any โ”‚\nโ”‚ Time โ”‚ Any โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nLetโ€™s put all of this together, and create a simple server configuration that accepts sessions from TestUser.\nAccount Server Configuration\nTo configure a server to use accounts you need an account resolver. An account resolver exposes a URL where a nats-server can query for JWTs belonging to an account.\nA simple built-in resolver is the MEMORY resolver which simply statically maps account public keys to an account JWT in the serverโ€™s configuration file. It is somewhat easier to configure because it doesnโ€™t require another moving part, but fails provide the needed experience of setting up an account server. Letโ€™s setup an Account Server.\nInstalling the Account Server\n> go get github.com/nats-io/nats-account-server\n\nThe account server has options to enable you to use an nsc directory directly. Letโ€™s start one:\n> nats-account-server -nsc ~/.nsc/nats/Test\n\nAbove we pointed the account server to our nsc data directory (more specifically to the Test operator that we created earlier). By default, the server listens on the localhost at port 9090.\nWe are now ready to configure the nats-server\nNATS Server Configuration\nIf you donโ€™t have a nats-server installed, letโ€™s do that now:\n> go get github.com/nats-io/nats-server\n\nLetโ€™s create a configuration that references our operator JWT and the nats-account-server as a resolver:\noperator: /Users/synadia/.nsc/nats/Test/Test.jwt\nresolver: URL(http://localhost:9090/jwt/v1/accounts/)\n\nAt minimum the server requires the operator JWT, which we have pointed at directly, and a resolver. The resolver has two types MEM and URL. We are interested in the URL since we want the nats-server to talk to the account server. Note we put the URL of the server with the path /jwt/v1/accounts. Currently this is where the account server expects requests for account information.\nClient Testing\nLetโ€™s install some tooling:\n> go get github.com/nats-io/go-nats/examples/nats-pub\n\n> go get github.com/nats-io/go-nats/examples/nats-sub\n\nCreate a subscriber:\nnats-sub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds \">\"\nListening on [>]\n\nPublish a message:\nnats-pub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds hello NATS \nPublished [hello] : 'NATS'\n\nSubscriber shows:\n[#1] Received on [hello]: โ€™NATSโ€™\n\n"},"nats_tools/nsc/streams.html":{"url":"nats_tools/nsc/streams.html","title":"Streams","keywords":"","body":"Streams\nTo share messages you publish with other accounts, you have to Export a Stream. Exports are associated with the account performing the export and advertised in exporting accountโ€™s JWT.\nAdding a Public Stream Export\nTo add a stream to your account:\n> nsc add export --name \"abc\" --subject \"a.b.c.>\"\nSuccess! - added public stream export \"abc\"\n\n\nNote that we have exported stream with a subject that contains a wildcard. Any subject that matches the pattern will be exported.\n\nTo check that the export is how you intended:\n> nsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ TestAccount โ”‚\nโ”‚ Account ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-29 14:20:13 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Imports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Exports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Subject โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ abc โ”‚ Stream โ”‚ a.b.c.> โ”‚ Yes โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nMessages this account publishes on a.b.c.> will be forwarded to all accounts that import this stream.\nImporting a Stream\nImporting a stream enables you to receive messages that are published by a different Account. To import a Stream, you have to create an Import. To create an Import you need to know:\n\nThe exporting accountโ€™s public key\nThe subject where the stream is published\nYou can map the streamโ€™s subject to a different subject\nSelf-imports are not valid; you can only import streams from other accounts.\n\nTo learn how to inspect a JWT from an account server, check this article.\nWith the required information, we can add an import to the public stream.\n> nsc add import --src-account AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H --remote-subject \"a.b.c.>\" --local-subject \"abc.>\"\nSuccess! - added stream import \"a.b.c.>\"\n\n\nNote we did fancy things here: The remote stream publishes messages as a.b.c.>, but we changed the prefix to be something else in the importing accountโ€™s subject space. We changed it to abc.>. Subscribers in our account can listen to abc.> to get the messages.\n\nAnd verifying it:\n> nsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ AccountB โ”‚\nโ”‚ Account ID โ”‚ AAL5Q2B3SMSO โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-25 21:33:58 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Exports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Imports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Remote โ”‚ Local โ”‚ Expires โ”‚ From Account โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ abc.> โ”‚ Stream โ”‚ a.b.c.> โ”‚ abc.> โ”‚ โ”‚ AC7PO3MREV26 โ”‚ Yes โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nSecuring Streams\nIf you want to create a stream that is only accessible to accounts you designate you can create a private stream. The export will be visible in your account, but subscribing accounts will require an authorization token that must be created by you and generated specifically for the subscribing account.\nThe authorization token is simply a JWT signed by your account where you authorize the client account to import your export.\nCreating a Private Stream Export\n> nsc add export --name pabc --subject \"a.b.c.>\" --private\nSuccess! - added private stream export \"pabc\"\n\nLike before we defined an export, but this time we added the --private flag.\n> nsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ TestAccount โ”‚\nโ”‚ Account ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-25 21:51:02 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Imports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Exports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Subject โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ pabc โ”‚ Stream โ”‚ a.b.c.> โ”‚ No โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nGenerating an Activation Token\nFor a foreign account to import a private stream, you have to generate an activation token. The activation token in addition to granting permissions to the account, it also allows you to subset the exported streamโ€™s subject.\nLetโ€™s create an account and user for our stream client:\n> nsc add account --name AccountB\nGenerated account key - private key stored โ€œ~/.nkeys/Test/accounts/AccountB/AccountB\"\nSuccess! - added account \"AccountB\"\n\n> nsc add user --name userb\nGenerated user key - private key stored \"~/.nkeys/Test/accounts/AccountB/users/userbโ€\nGenerated user creds file \"~/.nkeys/Test/accounts/ACcountB/users/userb.creds\"\nSuccess! - added user โ€œuserbโ€ to โ€œAccountBโ€\n\nTo generate a token, youโ€™ll need to know the public key of the account importing the stream.\n> nsc generate activation -o /tmp/activation.jwt --target-account AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4 โ€”subject a.b.c.d \ngenerated \"pabc\" activation for account \"AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4\".\nJTI is \"VNT3Y32I5FNTEHIVL6PINEJNNZ6Z2BGGEJ2QWNA3TPQ4A4KBRGHQ\"\n\nIn the above invocation, we generated an activation redirecting the output to /tmp/activation.jwt. The exporting account exported a.b.c.>, but on the activation token will only grant permission to a.b.c.d to the target account.\nFor completeness, the contents of the JWT file look like this:\n> cat /tmp/activation.jwt\n-----BEGIN NATS ACTIVATION JWT-----\neyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJWTlQzWTMySTVGTlRFSElWTDZQSU5FSk5OWjZaMkJHR0VKMlFXTkEzVFBRNEE0S0JSR0hRIiwiaWF0IjoxNTU2MjI5NDk0LCJpc3MiOiJBQzdQTzNNUkVWMjZVM0xGWkZQNUJOM0hBSTMyWDNQS0xCUlZNUEFFVExFSFdQUUVVRzdFSlk0SCIsIm5hbWUiOiJhLmIuYy5kIiwic3ViIjoiQUFMNVEyQjNTTVNPNUFTM0FQSkZVTkFJS1VDRVFKUEFRNzZYRUJUVk9DUUNYWEdLUDNZTUdHTjQiLCJ0eXBlIjoiYWN0aXZhdGlvbiIsIm5hdHMiOnsic3ViamVjdCI6ImEuYi5jLmQiLCJ0eXBlIjoic3RyZWFtIn19.eA0W-mcxFXyIpEk0MUgaLjj7t5jxEHTar7MNY5IYcJ7NHlDoHU5IFog2LlFW_hpTCFA4qa989vqECsiTuBuCAA\n------END NATS ACTIVATION JWT------\n\nWhen decoded it looks like this:\n> nsc describe jwt -f /tmp/activation.jwt \nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Activation โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Import Type โ”‚ Stream โ”‚\nโ”‚ Import Subject โ”‚ a.b.c.d โ”‚\nโ”‚ Account ID โ”‚ AAL5Q2B3SMSO โ”‚\nโ”‚ Issuer ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issued โ”‚ 2019-04-25 21:58:14 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Messages โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Network Src โ”‚ Any โ”‚\nโ”‚ Time โ”‚ Any โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nThe token can be shared directly with the client account. \n\nIf you manage many tokens for many accounts, you may want to host activation tokens on a web server and share the URL with the account. The benefit to the hosted approach is that any updates to the token would be available to the importing account whenever their account is updated, provided the URL you host them in is stable.\n\nImporting a Private Stream\nImporting a private stream is more natural than a public one as the activation token given to you already has all the necessary details. Note that the token can be an actual file path or a remote URL.\n> nsc add import --token /tmp/activation.jwt \nSuccess! - added stream import \"a.b.c.d\"\n\n> nsc describe account\nnsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ AccountB โ”‚\nโ”‚ Account ID โ”‚ AAL5Q2B3SMSO โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-25 22:04:29 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Exports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Imports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Remote โ”‚ Local โ”‚ Expires โ”‚ From Account โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ a.b.c.d โ”‚ Stream โ”‚ a.b.c.d โ”‚ a.b.c.d โ”‚ โ”‚ AC7PO3MREV26 โ”‚ No โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nTesting the Private Stream\nStart the nats-account-server:\n > nats-account-server -nsc ~/.nsc/nats/Test\n\nCreate a config for the nats server server.conf:\noperator: /Users/synadia/.nsc/nats/Test/Test.jwt\nresolver: URL(http://localhost:9090/jwt/v1/accounts/)\n\nStart the nats-server:\n> nats-server -c server.conf\n\nStart the subscriber for the client account:\n> nats-sub -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds \">\"\nListening on [>]\n\nPublish messages to the stream:\n# Client wonโ€™t get this one since it only has permission\n# for messages โ€˜a.b.c.dโ€™\n> nats-pub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds a.b.c.a \"hello\"\nPublished [a.b.c.a] : 'hello'\n\n > nats-pub -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds a.b.c.d \"hello\"\nPublished [a.b.c.d] : 'hello'\n\nThe subscriber as expected prints a message on the stream that it was allowed to receive:\n[#1] Received on [a.b.c.d.a.b.c.d]: 'hello'\n\n"},"nats_tools/nsc/services.html":{"url":"nats_tools/nsc/services.html","title":"Services","keywords":"","body":"Services\nTo share services that other accounts can reach via request reply, you have to Export a Service. Services are associated with the account performing the replies and are advertised in the exporting accounts' JWT.\nAdding a Public Service Export\nTo add a service to your account:\n> nsc add export --name \"srv\" --subject \"help\" --service\nSuccess! - added public service export \"srv\"\n\nTo review the service export:\n> nsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ TestAccount โ”‚\nโ”‚ Account ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-29 14:20:13 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Imports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Exports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Subject โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ help โ”‚ Service โ”‚ help โ”‚ Yes โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nImporting a Service\nImporting a service enables you to send requests to the remote Account. To import a Service, you have to create an Import. To create an import you need to know:\n\nThe exporting accountโ€™s public key\nThe subject the service is listening on\nYou can map the serviceโ€™s subject to a different subject\nSelf-imports are not valid; you can only import services from other accounts.\n\nTo learn how to inspect a JWT from an account server, check this article.\n> nsc add import --src-account AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H --remote-subject help --service\nSuccess! - added service import \"help\"\n\nVerifying our handywork:\n> nsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ AccountB โ”‚\nโ”‚ Account ID โ”‚ AAL5Q2B3SMSO โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-29 14:37:49 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Exports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Imports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Remote โ”‚ Local โ”‚ Expires โ”‚ From Account โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ help โ”‚ Service โ”‚ help โ”‚ help โ”‚ โ”‚ AC7PO3MREV26 โ”‚ Yes โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nTesting the Service\nTo test the service, we can install the nats-req and nats-rply tools:\nSet up a process to handle the request:\n> go get github.com/nats-io/go-nats/examples/nats-rply\n\n> nats-rply -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds \"help\" \"I will help\" \nListening on [help]\n\nSend the request:\n> go get github.com/nats-io/go-nats/examples/nats-req\n> nats-req -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds help me\nPublished [help] : 'me'\n\nThe service receives the request:\n[#1] Received on [help]: 'me'\n\nAnd the response is received by the requestor:\nReceived [_INBOX.v6KAX0v1bu87k49hbg3dgn.StIGJF0D] : 'I will help'\n\nSecuring Services\nIf you want to create a service that is only accessible to accounts you designate you can create a private service. The export will be visible in your account, but subscribing accounts will require an authorization token that must be created by you and generated specifically for the requesting account.\nLetโ€™s create an account and user for our stream client:\n> nsc add account --name AccountB\nGenerated account key - private key stored โ€œ~/.nkeys/Test/accounts/AccountB/AccountB\"\nSuccess! - added account \"AccountB\"\n\n> nsc add user --name userb\nGenerated user key - private key stored \"~/.nkeys/Test/accounts/AccountB/users/userbโ€\nGenerated user creds file \"~/.nkeys/Test/accounts/AccountB/users/userb.creds\"\nSuccess! - added user โ€œuserbโ€ to โ€œAccountBโ€\n\nThe authorization token is simply a JWT signed by your account where you authorize the client account to import your service.\nCreating a Private Service Export\n> nsc add export --name phelp --subject \"help.>\" --private --service\nSuccess! - added private service export \"phelp\"\n\nAs before, we declared an export, but this time we added the --private flag. The other thing to note is that the subject for the request has a wildcard. This enables the account to map specific subjects to specifically authorized accounts.\n> nsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ TestAccount โ”‚\nโ”‚ Account ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-29 14:59:42 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Imports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Exports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Subject โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ phelp โ”‚ Service โ”‚ help.> โ”‚ No โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nGenerating an Activation Token\nFor the foreign account to import a private service and be able to send requests, you have to generate an activation token. The activation token in addition to granting permission to the account allows you to subset the serviceโ€™s subject:\nTo generate a token, youโ€™ll need to know the public key of the account importing the service.\n> nsc generate activation -o /tmp/activation.jwt --target-account AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4 --subject \"help.AAL5Q2B3SM\" --service\ngenerated \"phelp\" activation for account \"AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4\".\nJTI is \"IY4ZUWLNLOTO5N5UDLOFEBCOMHB6MKQMK4ZELA2BSPKMXSEARXOA\"\n\nIn the above invocation, we generated an activation redirecting the output to /tmp/activation.jwt. The activation only allows the client account to perform requests on help.AAL5Q2B3SM.\nFor completeness, the contents of the JWT file looks like this:\n> cat /tmp/activation.jwt\n-----BEGIN NATS ACTIVATION JWT-----\neyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJJWTRaVVdMTkxPVE81TjVVRExPRkVCQ09NSEI2TUtRTUs0WkVMQTJCU1BLTVhTRUFSWE9BIiwiaWF0IjoxNTU2NTUwMDczLCJpc3MiOiJBQzdQTzNNUkVWMjZVM0xGWkZQNUJOM0hBSTMyWDNQS0xCUlZNUEFFVExFSFdQUUVVRzdFSlk0SCIsIm5hbWUiOiJoZWxwLkFBTDVRMkIzU00iLCJzdWIiOiJBQUw1UTJCM1NNU081QVMzQVBKRlVOQUlLVUNFUUpQQVE3NlhFQlRWT0NRQ1hYR0tQM1lNR0dONCIsInR5cGUiOiJhY3RpdmF0aW9uIiwibmF0cyI6eyJzdWJqZWN0IjoiaGVscC5BQUw1UTJCM1NNIiwidHlwZSI6InNlcnZpY2UifX0.VFYHPA0e67RFR-XFy7Q7pS90hzZvP5k3OsldjaDrIXP4UdpuQeUhv9qK9EMK40pcgH6NzJ7gmaZLU6RpAcbXAg\n------END NATS ACTIVATION JWT------\n\nWhen decoded it looks like this:\n> nsc describe jwt -f /tmp/activation.jwt\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Activation โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Import Type โ”‚ Service โ”‚\nโ”‚ Import Subject โ”‚ help.AAL5Q2B3SM โ”‚\nโ”‚ Account ID โ”‚ AAL5Q2B3SMSO โ”‚\nโ”‚ Issuer ID โ”‚ AC7PO3MREV26 โ”‚\nโ”‚ Issued โ”‚ 2019-04-29 15:01:13 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Messages โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Network Src โ”‚ Any โ”‚\nโ”‚ Time โ”‚ Any โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nThe token can be shared directly with the client account. \n\nIf you manage many tokens for many accounts, you may want to host activation tokens on a web server and share the URL with the account. The benefit to the hosted approach is that any updates to the token would be available to the importing account whenever their account is updated, provided the URL you host them in is stable.\n\nImporting a Private Service\nAs with streams, importing a private service is more natural than a public one because the activation token stores all the necessary details. Again, the token can be an actual file path or a remote URL.\n> nsc describe account\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ AccountB โ”‚\nโ”‚ Account ID โ”‚ AAL5Q2B3SMSO โ”‚\nโ”‚ Issuer ID โ”‚ OAYI3YUZSWDN โ”‚\nโ”‚ Issued โ”‚ 2019-04-29 15:26:39 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Exports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Imports โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ Type โ”‚ Remote โ”‚ Local โ”‚ Expires โ”‚ From Account โ”‚ Public โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ help โ”‚ Service โ”‚ help.AAL5Q2B3SM โ”‚ help โ”‚ โ”‚ AC7PO3MREV26 โ”‚ No โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nTesting the Private Service\nStart the replier:\n> nats-rply -creds ~/.nkeys/Test/accounts/TestAccount/users/TestUser.creds \"help.>\" \"I will help\"\nListening on [help.>]\n\nSend a request:\n> nats-req -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds help me \nPublished [help] : 'me'\n\nThe service receives the message:\n[#1] Received on [help.AAL5Q2B3SM]: 'me'\n\nThe requester receives its response:\nReceived [_INBOX.N3IiqWbiAQfPoINCBpBrUM.ZjBNtkB3] : 'I will help'\n\n"},"nats_tools/nsc/signing_keys.html":{"url":"nats_tools/nsc/signing_keys.html","title":"Signing Keys","keywords":"","body":"Signing Keys\nAs previously discussed, NKEYs are identities, and if someone gets a hold of an account or operator nkey they can do everything you can do as you.\nNATS has a strategies to let you deal with scenarios where your private keys escape out in the wild.\nThe first and most important line of defense is Signing Keys. Signing Keys allow you have multiple NKEY identities of the same kind (Operator or Account) that have the same degree of trust as the standard Issuer nkey.\nThe concept behind the signing key is that you can issue a JWT for an operator or an account that lists multiple nkeys. Typically the issuer will match the Subject of the entity issuing the JWT. With SigningKeys, a JWT is considered valid if it is signed by the Subject of the Issuer or one of its signing keys. This enables guarding the private key of the Operator or Account more closely while allowing Accounts, Users or Activation Tokens be signed using alternate private keys.\nIf an issue should arise where somehow a signing key escapes into the wild, you would remove the compromised signing key from the entity, add a new one, and reissue the entity. When a JWT is validated, if the signing key is missing, the operation is rejected. You are also on the hook to re-issue all JWTs (accounts, users, activation tokens) that were signed with the compromised signing key.\nThis is effectively a large hammer. You can mitigate the process a bit by having a larger number of signing keys and then rotating the signing keys to get a distribution you can easily handle in case of a compromise. In a future release, weโ€™ll have a revocation process were you can invalidate a single JWT by its unique JWT ID (JTI). For now a sledge hammer you have.\nWith greater security process, thereโ€™s greater complexity. With that said, nsc doesnโ€™t track public or private signing keys. As these are only identities that when in use presume a manual use. That means that you the user will have to track and manage your private keys more closely.\nLetโ€™s get a feel for the workflow. We are going to:\n\nCreate an operator with a signing key\nCreate an account with a signing key\nThe account will be signed using the operatorโ€™s signing key\nCreate an user with the accountโ€™s signing key\n\nAll signing key operations revolve around the global nsc flag -K or --private-key. Whenever you want to modify an entity, you have to supply the parent key so that the JWT is signed. Normally this happens automatically but in the case of signing keys, youโ€™ll have to supply the flag by hand.\nCreating the operator:\n> nsc add operator -n O2\nGenerated operator key - private key stored \"/Users/synadia/.nkeys/O2/O2.nk\"\nSuccess! - added operator \"O2\"\n\nTo add a signing key we have to first generate one with nk. NSC doesnโ€™t at this time offer a way to generate keys that are not associated with an entity. This means that you will have to generate and store the secrets yourself:\n# generate an operator keypair:\n> nk -gen operator -pubout\nSOAIHSQSAM3ZJI5W6U5M4INH7FUCQQ5ETJ5RMPVJZCJLTDREY6ZNEE6LZQ\nODMYCI5TSZY6MFLOBBQ2RNRBRAXRKJKAC5UACRC6H6CJXCLR2STTGAAQ\n\n\nOn a production environment private keys should be saved to a file and always referenced from the secured file.\n\nNow we are going to edit the operator by adding a signing key with the --sk flag providing the generated operator public key (the one starting with O):\n> nsc edit operator --sk ODMYCI5TSZY6MFLOBBQ2RNRBRAXRKJKAC5UACRC6H6CJXCLR2STTGAAQ\nSuccess! - edited operator\n-----BEGIN NATS OPERATOR JWT-----\neyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPMk5BMkNaQ1ZINkQyTEVCQkNDVUFHTEZaWFJPTTdKTEs1Q1ZXRDZMVlpPVU9TUExDS0dBIiwiaWF0IjoxNTU2NTczNTYzLCJpc3MiOiJPQks3M09MUU9KV05ZVE4yTzQ2SVpRTjRXTVNDN0hWVk5BM1k2VFdQV0tDRlhJV1MzWExTQVVJUyIsIm5hbWUiOiJPMiIsInN1YiI6Ik9CSzczT0xRT0pXTllUTjJPNDZJWlFONFdNU0M3SFZWTkEzWTZUV1BXS0NGWElXUzNYTFNBVUlTIiwidHlwZSI6Im9wZXJhdG9yIiwibmF0cyI6eyJzaWduaW5nX2tleXMiOlsiT0RNWUNJNVRTWlk2TUZMT0JCUTJSTlJCUkFYUktKS0FDNVVBQ1JDNkg2Q0pYQ0xSMlNUVEdBQVEiXX19.-VNSZhmOa3TrGglTZ3pGU3BPScb0uj5rdvTHzzOyZ18_WlCBfo6H8S01S3D2qf9J36lKhPplMtupheYqEo04Aw\n------END NATS OPERATOR JWT------\n\nCheck our handy work:\n> nsc describe operator\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Operator Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ O2 โ”‚\nโ”‚ Operator ID โ”‚ OBK73OLQOJWN โ”‚\nโ”‚ Issuer ID โ”‚ OBK73OLQOJWN โ”‚\nโ”‚ Issued โ”‚ 2019-04-29 21:32:43 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Signing Keys โ”‚ ODMYCI5TSZY6 โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nNow letโ€™s create an account called A and sign it the generated operator private signing key. To sign it with the key specify the -K flag and the private key or a path to the private key:\n> nsc add account --name A -K SOAIHSQSAM3ZJI5W6U5M4INH7FUCQQ5ETJ5RMPVJZCJLTDREY6ZNEE6LZQ\nGenerated account key - private key stored \"/Users/synadia/.nkeys/O2/accounts/A/A.nk\"\nSuccess! - added account \"A\"\n\nLetโ€™s generate an account signing key, again we use nk:\n> nk -gen account -pubout\nSAAK3EL5BW4ZOR7JVTXZ4TJ6RQBSOIXK27AFPPSYVP4KDHJKSRQFVRAHIA\nABHYL27UAHHQXA5HLH2YWHFQBIP4YMPC7RNZ4PSFRAMJHSSZUUIXF2RV\n\nLetโ€™s add the signing key to the account, and remember to sign the account with the operator signing key:\n> nsc edit account --sk ABHYL27UAHHQXA5HLH2YWHFQBIP4YMPC7RNZ4PSFRAMJHSSZUUIXF2RV -K SOAIHSQSAM3ZJI5W6U5M4INH7FUCQQ5ETJ5RMPVJZCJLTDREY6ZNEE6LZQ \nSuccess! - edited account \"A\"\n\n\n> nsc describe account \nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ A โ”‚\nโ”‚ Account ID โ”‚ AD7HDY5AS3LT โ”‚\nโ”‚ Issuer ID โ”‚ ODMYCI5TSZY6 โ”‚\nโ”‚ Issued โ”‚ 2019-04-30 22:33:13 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Signing Keys โ”‚ ABHYL27UAHHQ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Leaf Node Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Imports โ”‚ None โ”‚\nโ”‚ Exports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nWe can see that the signing key ABHYL27UAHHQ was added to the account. Also the issuer is the operator signing key (specified by the -K).\nNow letโ€™s create a user and signing it with account signing key starting with ABHYL27UAHHQ.\n> nsc add user --name U -K SAAK3EL5BW4ZOR7JVTXZ4TJ6RQBSOIXK27AFPPSYVP4KDHJKSRQFVRAHIA\nGenerated user key - private key stored \"/Users/synadia/.nkeys/O2/accounts/A/users/U.nk\"\nGenerated user creds file \"/Users/synadia/.nkeys/O2/accounts/A/users/U.creds\"\nSuccess! - added user \"U\" to \"A\"\n\n> nsc describe user\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ User โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ U โ”‚\nโ”‚ User ID โ”‚ UDYKZHLXFH56 โ”‚\nโ”‚ Issuer ID โ”‚ ABHYL27UAHHQ โ”‚\nโ”‚ Issuer Account โ”‚ AD7HDY5AS3LT โ”‚\nโ”‚ Issued โ”‚ 2019-04-30 22:43:46 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Messages โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Network Src โ”‚ Any โ”‚\nโ”‚ Time โ”‚ Any โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nAs expected, the issuer is now the signing key we generated earlier. To map the user to the actual account, an Issuer Account field was added to the JWT that identifies the public key of account A.\n"},"nats_tools/nas/":{"url":"nats_tools/nas/","title":"nats-account-server","keywords":"","body":"NATS Account Server\nThe NATS Account Server is an HTTP server that hosts and vends JWTs for nats-server 2.0 account authentication. The server supports an number of stores which enable it to serve JWTs from:\n\na directory\nan NSC directory\nmemory (for testing purposes)\n\nThe server can operate in a READ ONLY mode where it serves content from a directory, or in notification mode, where it can notify a NATS server that JWT in the store have been modified, updating the NATS server with the updated JWT.\nMemory Resolver\nFor very simple installations, where JWTs are mostly static, the NATS server also supports a Memory Resolver that can be configured statically in the server's configuration file.\nYou can learn more about how to configure the memory resolver here.\n"},"nats_tools/nas/nas_conf.html":{"url":"nats_tools/nas/nas_conf.html","title":"Basics","keywords":"","body":"Configuration\nBasic configuration revolves around 4 settings:\n\nThe store to read JWTs from\nThe HTTP/S configuration\nNATS (for cases where updates are enabled)\nLogging\n\nFor complete information on please refer to the project's Github.\nnsc Configuration\nFor a basic usage of the server you can specify the -nsc flag, and specify the path to an operator in your environment.\n\nIf you have not yet created an operator or accounts, you'll need to do so before continuing. See NSC\n\nYou can easily locate the path by running nsc env to print your nsc settings:\n> nsc env\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ NSC Environment โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Setting โ”‚ Set โ”‚ Effective Value โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ $NKEYS_PATH โ”‚ No โ”‚ ~/.nkeys โ”‚\nโ”‚ $NSC_HOME โ”‚ No โ”‚ ~/.nsc โ”‚\nโ”‚ Config โ”‚ โ”‚ ~/.nsc/nsc.json โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Stores Dir โ”‚ โ”‚ ~/.nsc/nats โ”‚\nโ”‚ Default Operator โ”‚ โ”‚ Test โ”‚\nโ”‚ Default Account โ”‚ โ”‚ TestAccount โ”‚\nโ”‚ Default Cluster โ”‚ โ”‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\nThe path you are interested in the Stores Dir. This is the root of all operators, you'll also need the name of your operator. If your current operator is not listed, you can list all your available operators by doing:\n> nsc list operators\n\nTo start the nats-account-server with the operator Test:\n> nats-account-server -nsc ~/.nsc/nats/Test\n2019/05/10 11:22:41.845148 [INF] starting NATS Account server, version 0.0-dev\n2019/05/10 11:22:41.845241 [INF] server time is Fri May 10 11:22:41 CDT 2019\n2019/05/10 11:22:41.845245 [INF] loading operator from /Users/synadia/.nsc/nats/Test/Test.jwt\n2019/05/10 11:22:41.846367 [INF] creating a read-only store for the NSC folder at /Users/synadia/.nsc/nats/Test\n2019/05/10 11:22:41.846459 [INF] NATS is not configured, server will not fire notifications on update\n2019/05/10 11:22:41.855291 [INF] http listening on port 9090\n2019/05/10 11:22:41.855301 [INF] nats-account-server is running\n2019/05/10 11:22:41.855303 [INF] configure the nats-server with:\n2019/05/10 11:22:41.855306 [INF] resolver: URL(http://localhost:9090/jwt/v1/accounts/)\n\nBy default the server will serve JWTs on the localhost at port 9090. The last line in the shown in the printout is important, that is the resolver URL you'll have to provide on your NATS server configuration. You'll also need the matching operator JWT which is on ~/.nsc/nats/Test/Test.jwt if you are following the example above. On the server configuration you'll need to expand the ~ as necessary. Here's what my NATS server configuration looks like:\noperator: /Users/synadia/.nsc/nats/Test/Test.jwt\nresolver: URL(http://localhost:9090/jwt/v1/accounts/)\n\nNote that servers you create with the -nsc option (or store option) are read-only. This means that the server will not accept POST requests to update the JWT store.\nDirectory Configuration\nYou can start a server using a plain directory. In this case you'll be responsible for adding any JWT that you want resolved. \n\nThe server looks for account JWTs by using the public key of the account as the file name followed by the extension .jwt. The server will not introspect the JWTs, so if you don't name the files correctly, it will fail to find them or serve a JWT that doesn't match the requested account.\n\n> mkdir /tmp/jwts\nnats-account-server -dir /tmp/jwts\n2019/05/10 11:33:40.501305 [INF] starting NATS Account server, version 0.0-dev\n2019/05/10 11:33:40.501383 [INF] server time is Fri May 10 11:33:40 CDT 2019\n2019/05/10 11:33:40.501404 [INF] creating a store at /tmp/jwts\n2019/05/10 11:33:40.501430 [INF] NATS is not configured, server will not fire notifications on update\n2019/05/10 11:33:40.510273 [INF] http listening on port 9090\n2019/05/10 11:33:40.510283 [INF] nats-account-server is running\n2019/05/10 11:33:40.510285 [INF] configure the nats-server with:\n2019/05/10 11:33:40.510291 [INF] resolver: URL(http://localhost:9090/jwt/v1/accounts/)\n\nConfiguration for the NATS server is the same as in the previous example:\noperator: /Users/synadia/.nsc/nats/Test/Test.jwt\nresolver: URL(http://localhost:9090/jwt/v1/accounts/)\n\nConfiguration File\nWhile the -nsc and -dir store flags are sufficient for some very simple developer setups, any production or non-read-only server will require a configuration file.\nLet's take a look at the configuration options:\nConfiguration Options\n\n\n\nOption\nDescription\n\n\n\n\nhttp\nAn http configuration block specifying HTTP options.\n\n\nlogging\nA logging configuration block specifying server logging options.\n\n\nnats\nA nats configuration block specifying NATS connection information for the account server to push JWT changes to a NATS server.\n\n\noperatorjwtpath\nThe path to an operator JWT. Required for non-read-only servers. Only JWTs signed by the operator (or one of it's signing keys) are accepted.\n\n\nstore\nA store configuration block specifying store options.\n\n\nsystemaccountjwtpath\nPath to an Account JWT that should be returned as the system account.\n\n\n\nstore Configuration\n\n\n\nOption\nDescription\n\n\n\n\ndir\nConfigures a directory as a store.\n\n\nnsc\nConfigures an nsc read-only store. The value should be the path to an operator directory. Option is mutually exlusive with dir.\n\n\nreadonly\nIf true, the store will not accept POST requests. Note that to receive requests, the store must also have operatorjwtpath specified as a root option.\n\n\nshard\nIf true, JWTs are sharded in the store directory.\n\n\n\nlogging Options\n\n\n\nOption\nDescription\n\n\n\n\ntime\nIf true, a timestamp is added to log messages.\n\n\ndebug\nIf true, debug messages are logged.\n\n\ntrace\nIf true, trace messages are logged.\n\n\ncolors\nIf true, messages are logged using ANSI color escape sequences.\n\n\npid\nIf true, the process id for the server is added to log messages.\n\n\n\nhttp Options\n\n\n\nOption\nDescription\n\n\n\n\nhost\nInterface to listen for requests on.\n\n\nport\nPort to listen for requests on.\n\n\nreadtimeout\nMax amount of time in milliseconds to wait for a http read operation to complete.\n\n\nwritetimeout\nMax amount of time in milliseconds to wait for a http write operation to complete.\n\n\n\nnats Options\n\n\n\nOption\nDescription\n\n\n\n\nservers\nList of NATS servers for the account server to use when connecting to a NATS server to publish updates.\n\n\nconnecttimeout\nMax amount of time in milliseconds to wait for a NATS connection.\n\n\nreconnecttimewait\nAmount of time in milliseconds to between NATS server reconnect attempts.\n\n\ntls\nA tls configuration block.\n\n\nusercredentials\nA credentials creds file for connecting to the NATS server. Account must be a member of a system account.\n\n\n\ntls Options\n\n\n\nOption\nDescription\n\n\n\n\nroot\nfilepath to the CA certificate.\n\n\ncert\nfilepath to the certificate.\n\n\ncert\nfilepath to the certificate key.\n\n\n\n"},"nats_tools/nas/inspecting_jwts.html":{"url":"nats_tools/nas/inspecting_jwts.html","title":"Inspecting JWTs","keywords":"","body":"Inspecting a JWT from the nats-account-server\nLetโ€™s say that you know the account for a stream that you are interested in, but you don't know all the details for creating an import. If you know and have access to a nats-account-server, you can help yourself. The nats-account-server can decode a JWT and give you human readable values that you can use.\nThe endpoint for retrieving an account JWT is:\n/jwt/v1/accounts/. To decode a JWT add the query string ?decode=true.\n> curl http://localhost:9090/jwt/v1/accounts/AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H\\?decode=true\n{\n \"typ\": \"jwt\",\n \"alg\": \"ed25519\"\n}\n{\n \"jti\": \"5YMRO4KNMYWQDMRAHVTT4KX63CA2L3M6F4VM3S7NNGPMCCATORXQ\",\n \"iat\": 1556229062 (2019-04-25),\n \"iss\": \"OAYI3YUZSWDNMERD2IN3HZSIP3JA2E3VDTXSTEVOIII273XL2NABJP64\",\n \"name\": \"TestAccount\",\n \"sub\": \"AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H\",\n \"type\": \"account\",\n \"nats\": {\n \"exports\": [\n {\n \"name\": \"abc\",\n \"subject\": \"a.b.c.>\",\n \"type\": \"stream\"\n }\n ],\nโ€ฆ\n\nAs you can see from above, the JWT is decoded. The standard JWT claim field abbreviated names may be a little terse, so here's a list of the more important ones:\n\njti is the JWT ID. All JWTs have one and they are unique.\niat is Issued At - the UNIX date (number of seconds since 1970) when the JWT was issued.\niss is the Issuer. For NATS JWTs it is the public key of the issuer. In the example above the entity is an account, so the issuer will be an operator. Thus the id will always start with the letter O.\nsub is the Subject of the claim. In NATS JWTs it is the public key of the entity of the claim is for. In the example above, it is an Account, so the issuer will always start with the letter A.\n\nOn the example above, we see that there is one export in this account, it is public (token_req is false or not set), and it is a stream. So this account exports a public stream. With that information you can create an import on the public stream.\n"},"nats_tools/nas/mem_resolver.html":{"url":"nats_tools/nas/mem_resolver.html","title":"Memory Resolver","keywords":"","body":"Memory Resolver\nThe MEMORY resolver is a built-in resolver for JWTs. It is mostly used by test setups but can be used to test the simplest of environments where there is one or very few accounts, and the account JWTs donโ€™t change often.\nThe basic configuration for the server requires:\n\nThe operator JWT\nresolver set to MEMORY\nresolver_preload set to an object where account public keys are mapped to account JWTs.\n\nCreate Required Entities\nLetโ€™s create the setup:\n> nsc add operator -n memory\nGenerated operator key - private key stored \"/Users/synadia/.nkeys/memory/memory.nk\"\nSuccess! - added operator \"memory\"\n\n> nsc add account --name A\nGenerated account key - private key stored \"/Users/synadia/.nkeys/memory/accounts/A/A.nk\"\nSuccess! - added account \"A\"\n\n> nsc describe account -W\nโ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ Account Details โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Name โ”‚ A โ”‚\nโ”‚ Account ID โ”‚ ACSU3Q6LTLBVLGAQUONAGXJHVNWGSKKAUA7IY5TB4Z7PLEKSR5O6JTGR โ”‚\nโ”‚ Issuer ID โ”‚ ODWZJ2KAPF76WOWMPCJF6BY4QIPLTUIY4JIBLU4K3YDG3GHIWBVWBHUZ โ”‚\nโ”‚ Issued โ”‚ 2019-04-30 20:21:34 UTC โ”‚\nโ”‚ Expires โ”‚ โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Max Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Leaf Node Connections โ”‚ Unlimited โ”‚\nโ”‚ Max Data โ”‚ Unlimited โ”‚\nโ”‚ Max Exports โ”‚ Unlimited โ”‚\nโ”‚ Max Imports โ”‚ Unlimited โ”‚\nโ”‚ Max Msg Payload โ”‚ Unlimited โ”‚\nโ”‚ Max Subscriptions โ”‚ Unlimited โ”‚\nโ”‚ Exports Allows Wildcards โ”‚ True โ”‚\nโ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค\nโ”‚ Imports โ”‚ None โ”‚\nโ”‚ Exports โ”‚ None โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n> cat /Users/synadia/.nsc/nats/memory/accounts/A/A.jwt \neyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPRFhJSVI2Wlg1Q1AzMlFJTFczWFBENEtTSDYzUFNNSEZHUkpaT05DR1RLVVBISlRLQ0JBIiwiaWF0IjoxNTU2NjU1Njk0LCJpc3MiOiJPRFdaSjJLQVBGNzZXT1dNUENKRjZCWTRRSVBMVFVJWTRKSUJMVTRLM1lERzNHSElXQlZXQkhVWiIsIm5hbWUiOiJBIiwic3ViIjoiQUNTVTNRNkxUTEJWTEdBUVVPTkFHWEpIVk5XR1NLS0FVQTdJWTVUQjRaN1BMRUtTUjVPNkpUR1IiLCJ0eXBlIjoiYWNjb3VudCIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJjb25uIjotMSwibGVhZiI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ3aWxkY2FyZHMiOnRydWV9fX0._WW5C1triCh8a4jhyBxEZZP8RJ17pINS8qLzz-01o6zbz1uZfTOJGvwSTS6Yv2_849B9iUXSd-8kp1iMXHdoBA\n\n> nsc add user --name TA\nGenerated user key - private key stored โ€œ/Users/synadia/.nkeys/memory/accounts/A/users/TA.nk\"\nGenerated user creds file โ€œ/Users/synadia/.nkeys/memory/accounts/A/users/TA.creds\"\nSuccess! - added user \"TA\" to \"A\"\n\nCreate the Server Config\nWith the above entries, we can reference the operator JWT and the account JWT in a server configuration. Remember that your configuration will be in $NSC_HOME/nats//.jwt for the operator. The account JWT will be in $NSC_HOME/nats//accounts//.jwt\noperator: /Users/synadia/.nsc/nats/memory/memory.jwt\nresolver: MEMORY\nresolver_preload: {\nACSU3Q6LTLBVLGAQUONAGXJHVNWGSKKAUA7IY5TB4Z7PLEKSR5O6JTGR: eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJPRFhJSVI2Wlg1Q1AzMlFJTFczWFBENEtTSDYzUFNNSEZHUkpaT05DR1RLVVBISlRLQ0JBIiwiaWF0IjoxNTU2NjU1Njk0LCJpc3MiOiJPRFdaSjJLQVBGNzZXT1dNUENKRjZCWTRRSVBMVFVJWTRKSUJMVTRLM1lERzNHSElXQlZXQkhVWiIsIm5hbWUiOiJBIiwic3ViIjoiQUNTVTNRNkxUTEJWTEdBUVVPTkFHWEpIVk5XR1NLS0FVQTdJWTVUQjRaN1BMRUtTUjVPNkpUR1IiLCJ0eXBlIjoiYWNjb3VudCIsIm5hdHMiOnsibGltaXRzIjp7InN1YnMiOi0xLCJjb25uIjotMSwibGVhZiI6LTEsImltcG9ydHMiOi0xLCJleHBvcnRzIjotMSwiZGF0YSI6LTEsInBheWxvYWQiOi0xLCJ3aWxkY2FyZHMiOnRydWV9fX0._WW5C1triCh8a4jhyBxEZZP8RJ17pINS8qLzz-01o6zbz1uZfTOJGvwSTS6Yv2_849B9iUXSd-8kp1iMXHdoBA\n}\n\nSave the config at server.conf and start the server:\n> nats-server -c server.conf\n\nStart a subscriber:\n> nats-sub -creds /Users/synadia/.nkeys/memory/accounts/A/users/TA.creds \">\"\nListening on [>]\n\n"},"nats_tools/nats_top/":{"url":"nats_tools/nats_top/","title":"nats-top","keywords":"","body":"NATS TOP\nnats-top is a top-like tool for monitoring nats-server servers.\nThe nats-top tool provides a dynamic real-time view of a NATS server. nats-top can display a variety of system summary information about the NATS server, such as subscription, pending bytes, number of messages, and more, in real time. For example:\nnats-top\n\nnats-server version 0.6.4 (uptime: 31m42s)\nServer:\n Load: CPU: 0.8% Memory: 5.9M Slow Consumers: 0\n In: Msgs: 34.2K Bytes: 3.0M Msgs/Sec: 37.9 Bytes/Sec: 3389.7\n Out: Msgs: 68.3K Bytes: 6.0M Msgs/Sec: 75.8 Bytes/Sec: 6779.4\n\nConnections: 4\n HOST CID SUBS PENDING MSGS_TO MSGS_FROM BYTES_TO BYTES_FROM LANG VERSION SUBSCRIPTIONS\n 127.0.0.1:56134 2 5 0 11.6K 11.6K 1.1M 905.1K go 1.1.0 foo, hello\n 127.0.1.1:56138 3 1 0 34.2K 0 3.0M 0 go 1.1.0 _INBOX.a96f3f6853616154d23d1b5072\n 127.0.0.1:56144 4 5 0 11.2K 11.1K 873.5K 1.1M go 1.1.0 foo, hello\n 127.0.0.1:56151 5 8 0 11.4K 11.5K 1014.6K 1.0M go 1.1.0 foo, hello\n\nInstallation\nnats-top can be installed using go get. For example:\ngo get github.com/nats-io/nats-top\n\nNOTE: You may have to run the above command as user sudo depending on your setup. If you receive an error that you cannot install nats-top because your $GOPATH is not set, when in fact it is set, use command sudo -E go get github.com/nats-io/nats-top to install nats-top. The -E flag tells sudo to preserve the current user's environment.\nUsage\nOnce installed, nats-top can be run with the command nats-top and optional arguments.\nnats-top [-s server] [-m monitor] [-n num_connections] [-d delay_in_secs] [-sort by]\n\nOptions\nOptional arguments inclde the following:\n\n\n\nOption\nDescription\n\n\n\n\n-m monitor\nMonitoring http port from nats-server.\n\n\n-n num_connections\nLimit the connections requested to the server (default 1024).\n\n\n-d delay_in_secs\nScreen refresh interval (default 1 second).\n\n\n-sort by\nField to use for sorting the connections (see below).\n\n\n\nCommands\nWhile in nats-top view, you can use the following commands.\noption\nUse the o command to set the primary sort key to the value. The option value can be one of the following: cid, subs, pending, msgs_to, msgs_from, bytes_to, bytes_from, lang, version.\nYou can also set the sort option on the command line using the -sort flag. For example: nats-top -sort bytes_to.\nlimit\nUse the n command to set the sample size of connections to request from the server.\nYou can also set this on the command line using the -n num_connections flag. For example: nats-top -n 1.\nNote that if n is used in conjunction with -sort, the server will respect both options allowing queries such as the following: Query for the connection with largest number of subscriptions: nats-top -n 1 -sort subs.\ns, ? and q Commands\nUse the s command to toggle displaying connection subscriptions.\nUse the ? command to show help message with options.\nUse the q command to quit nats-top.\nTutorial\nFor a walkthrough with nats-top check out the tutorial.\n"},"nats_tools/nats_top/tutorial.html":{"url":"nats_tools/nats_top/tutorial.html","title":"Tutorial","keywords":"","body":"NATS TOP Tutorial\nYou can use nats-top to monitor in realtime NATS server connections and message statistics.\nPrerequisites\n\nSet up your Go environment\nInstalled the NATS server\n\n1. Install nats-top\n% go get github.com/nats-io/nats-top\n\nYou may need to run the following instead:\n% sudo -E go get github.com/nats-io/nats-top\n\n2. Start the NATS server with monitoring enabled\n% nats-server -m 8222\n\n3. Start nats-top\n% nats-top\n\nResult:\nnats-server version 0.6.6 (uptime: 2m2s)\nServer:\n Load: CPU: 0.0% Memory: 6.3M Slow Consumers: 0\n In: Msgs: 0 Bytes: 0 Msgs/Sec: 0.0 Bytes/Sec: 0\n Out: Msgs: 0 Bytes: 0 Msgs/Sec: 0.0 Bytes/Sec: 0\n\nConnections: 0\n HOST CID SUBS PENDING MSGS_TO MSGS_FROM BYTES_TO BYTES_FROM LANG VERSION\n\n4. Run NATS client programs\nRun some NATS client programs and exchange messages.\nFor the best experience, you will want to run multiple subscribers, at least 2 or 3. Refer to the example pub-sub clients.\n5. Check nats-top for statistics\nnats-server version 0.6.6 (uptime: 30m51s)\nServer:\n Load: CPU: 0.0% Memory: 10.3M Slow Consumers: 0\n In: Msgs: 56 Bytes: 302 Msgs/Sec: 0.0 Bytes/Sec: 0\n Out: Msgs: 98 Bytes: 512 Msgs/Sec: 0.0 Bytes/Sec: 0\n\nConnections: 3\n HOST CID SUBS PENDING MSGS_TO MSGS_FROM BYTES_TO BYTES_FROM LANG VERSION\n ::1:58651 6 1 0 52 0 260 0 go 1.1.0\n ::1:58922 38 1 0 21 0 105 0 go 1.1.0\n ::1:58953 39 1 0 21 0 105 0 go 1.1.0\n\n6. Sort nats-top statistics\nIn nats-top, enter the command o followed by the option, such as bytes_to. You see that nats-top sorts the BYTES_TO column in ascending order.\nnats-server version 0.6.6 (uptime: 45m40s)\nServer:\n Load: CPU: 0.0% Memory: 10.4M Slow Consumers: 0\n In: Msgs: 81 Bytes: 427 Msgs/Sec: 0.0 Bytes/Sec: 0\n Out: Msgs: 154 Bytes: 792 Msgs/Sec: 0.0 Bytes/Sec: 0\nsort by [bytes_to]:\nConnections: 3\n HOST CID SUBS PENDING MSGS_TO MSGS_FROM BYTES_TO BYTES_FROM LANG VERSION\n ::1:59259 83 1 0 4 0 20 0 go 1.1.0\n ::1:59349 91 1 0 2 0 10 0 go 1.1.0\n ::1:59342 90 1 0 0 0 0 0 go 1.1.0\n\n7. Use different sort options\nUse some different sort options to explore nats-top, such as:\ncid, subs, pending, msgs_to, msgs_from, bytes_to, bytes_from, lang, version\nYou can also set the sort option on the command line using the -sort flag. For example: nats-top -sort bytes_to.\n8. Display the registered subscriptions.\nIn nats-top, enter the command s to toggle displaying connection subscriptions. When enabled, you see the subscription subject in nats-top table:\nnats-server version 0.6.6 (uptime: 1h2m23s)\nServer:\n Load: CPU: 0.0% Memory: 10.4M Slow Consumers: 0\n In: Msgs: 108 Bytes: 643 Msgs/Sec: 0.0 Bytes/Sec: 0\n Out: Msgs: 185 Bytes: 1.0K Msgs/Sec: 0.0 Bytes/Sec: 0\n\nConnections: 3\n HOST CID SUBS PENDING MSGS_TO MSGS_FROM BYTES_TO BYTES_FROM LANG VERSION SUBSCRIPTIONS\n ::1:59708 115 1 0 6 0 48 0 go 1.1.0 foo.bar\n ::1:59758 122 1 0 1 0 8 0 go 1.1.0 foo\n ::1:59817 124 1 0 0 0 0 0 go 1.1.0 foo\n\n9. Quit nats-top\nUse the q command to quit nats-top.\n10. Restart nats-top with a specified query\nFor example, to query for the connection with largest number of subscriptions:\n% nats-top -n 1 -sort subs\n\nResult: nats-top displays only the client connection with the largest number of subscriptions:\nnats-server version 0.6.6 (uptime: 1h7m0s)\nServer:\n Load: CPU: 0.0% Memory: 10.4M Slow Consumers: 0\n In: Msgs: 109 Bytes: 651 Msgs/Sec: 0.0 Bytes/Sec: 0\n Out: Msgs: 187 Bytes: 1.0K Msgs/Sec: 0.0 Bytes/Sec: 0\n\nConnections: 3\n HOST CID SUBS PENDING MSGS_TO MSGS_FROM BYTES_TO BYTES_FROM LANG VERSION\n ::1:59708 115 1 0 6 0 48 0 go 1.1.0\n\n"},"nats_tools/natsbench.html":{"url":"nats_tools/natsbench.html","title":"nats-bench","keywords":"","body":"Benchmarking\nNATS is fast and lightweight and places a priority on performance. NATS provides tools for measuring performance. In this tutorial you learn how to benchmark and tune NATS on your systems and environment.\nPrerequisites\n\nSet up your Go environment\nInstall the NATS server\n\nStart the NATS server with monitoring enabled\n% nats-server -m 8222\n\nVerify that the NATS server starts successfully, as well as the HTTP monitor:\n[18541] 2016/10/31 13:26:32.037819 [INF] Starting nats-server version 0.9.4\n[18541] 2016/10/31 13:26:32.037912 [INF] Starting http monitor on 0.0.0.0:8222\n[18541] 2016/10/31 13:26:32.037997 [INF] Listening for client connections on 0.0.0.0:4222\n[18541] 2016/10/31 13:26:32.038020 [INF] Server is ready\n\nInstalling and running the benchmark utility\nThe NATS benchmark can be installed and run via Go. Ensure your golang environment is setup.\nThere are two approaches; you can either install the nats-bench utility in the directory specified in your GOBIN environment variable:\n% go install $GOPATH/src/github.com/nats-io/go-nats/examples/nats-bench.go\n\n... or you can simply run it via go run:\n% go run $GOPATH/src/github.com/nats-io/go-nats/examples/nats-bench.go\n\nOn windows use the % environment variable syntax, replacing $GOPATH with %GOPATH%.\nFor the purpose of this tutorial, we'll assume that you chose the first option, and that you've added the GOBIN environment variable to your PATH.\nThe nats-bench utility is straightforward to use. The options are as follows:\n% nats-bench -h\nUsage: nats-bench [-s server (nats://localhost:4222)] [--tls] [-np NUM_PUBLISHERS] [-ns NUM_SUBSCRIBERS] [-n NUM_MSGS] [-ms MESSAGE_SIZE] [-csv csvfile] \n\nThe options are self-explanatory. Each publisher or subscriber runs in its own go routine with its own NATS connection.\nRun a publisher throughput test\nLet's run a test to see how fast a single publisher can publish one million 16 byte messages to the NATS server.\n% nats-bench -np 1 -n 100000 -ms 16 foo\n\nThe output tells you the number of messages and the number of payload bytes that the client was able to publish per second:\nStarting benchmark [msgs=100000, msgsize=16, pubs=1, subs=0]\nPub stats: 7,055,644 msgs/sec ~ 107.66 MB/sec\n\nNow increase the number of messages published:\n% nats-bench -np 1 -n 10000000 -ms 16 foo\nStarting benchmark [msgs=10000000, msgsize=16, pubs=1, subs=0]\nPub stats: 7,671,570 msgs/sec ~ 117.06 MB/sec\n\nRun a publish/subscribe throughput test\nWhen using both publishers and subscribers, nats-bench reports aggregate, as well as individual publish and subscribe throughput performance.\nLet's look at throughput for a single publisher with a single subscriber:\n% nats-bench -np 1 -ns 1 -n 100000 -ms 16 foo\n\nNote that the output shows the aggregate throughput as well as the individual publisher and subscriber performance:\nStarting benchmark [msgs=100000, msgsize=16, pubs=1, subs=1]\nNATS Pub/Sub stats: 2,009,230 msgs/sec ~ 30.66 MB/sec\n Pub stats: 1,076,537 msgs/sec ~ 16.43 MB/sec\n Sub stats: 1,004,615 msgs/sec ~ 15.33 MB/sec\n\nRun a 1:N throughput test\nWhen specifying multiple publishers, or multiple subscribers, nats-bench will also report statistics for each publisher and subscriber individually, along with min/max/avg and standard deviation.\nLet's increase both the number of messages, and the number of subscribers.:\n% nats-bench -np 1 -ns 5 -n 10000000 -ms 16 foo\n\nOutput:\nStarting benchmark [msgs=10000000, msgsize=16, pubs=1, subs=5]\nNATS Pub/Sub stats: 5,730,851 msgs/sec ~ 87.45 MB/sec\n Pub stats: 955,279 msgs/sec ~ 14.58 MB/sec\n Sub stats: 4,775,709 msgs/sec ~ 72.87 MB/sec\n [1] 955,157 msgs/sec ~ 14.57 MB/sec (10000000 msgs)\n [2] 955,150 msgs/sec ~ 14.57 MB/sec (10000000 msgs)\n [3] 955,157 msgs/sec ~ 14.57 MB/sec (10000000 msgs)\n [4] 955,156 msgs/sec ~ 14.57 MB/sec (10000000 msgs)\n [5] 955,153 msgs/sec ~ 14.57 MB/sec (10000000 msgs)\n min 955,150 | avg 955,154 | max 955,157 | stddev 2 msgs\n\nRun a N:M throughput test\nWhen more than 1 publisher is specified, nats-bench evenly distributes the total number of messages (-n) across the number of publishers (-np). \nNow let's increase the number of publishers and examine the output:\n% nats-bench -np 5 -ns 5 -n 10000000 -ms 16 foo\n\nThe output:\nStarting benchmark [msgs=10000000, msgsize=16, pubs=5, subs=5]\nNATS Pub/Sub stats: 6,716,465 msgs/sec ~ 102.49 MB/sec\n Pub stats: 1,119,653 msgs/sec ~ 17.08 MB/sec\n [1] 226,395 msgs/sec ~ 3.45 MB/sec (2000000 msgs)\n [2] 225,955 msgs/sec ~ 3.45 MB/sec (2000000 msgs)\n [3] 225,889 msgs/sec ~ 3.45 MB/sec (2000000 msgs)\n [4] 224,552 msgs/sec ~ 3.43 MB/sec (2000000 msgs)\n [5] 223,933 msgs/sec ~ 3.42 MB/sec (2000000 msgs)\n min 223,933 | avg 225,344 | max 226,395 | stddev 937 msgs\n Sub stats: 5,597,054 msgs/sec ~ 85.40 MB/sec\n [1] 1,119,461 msgs/sec ~ 17.08 MB/sec (10000000 msgs)\n [2] 1,119,466 msgs/sec ~ 17.08 MB/sec (10000000 msgs)\n [3] 1,119,444 msgs/sec ~ 17.08 MB/sec (10000000 msgs)\n [4] 1,119,444 msgs/sec ~ 17.08 MB/sec (10000000 msgs)\n [5] 1,119,430 msgs/sec ~ 17.08 MB/sec (10000000 msgs)\n min 1,119,430 | avg 1,119,449 | max 1,119,466 | stddev 12 msgs\n\n"},"developer/":{"url":"developer/","title":"Introduction","keywords":"","body":"Developing with NATS\nDeveloping with NATS is a combination of distributed application techniques, common NATS features and library specific syntax. As well as using this book for guidance, some of the libraries contain language-familiar formats of their API. For example, the go library has go doc, and the Java library has javadoc.\n\n\n\nLibrary\nDoc Link\n\n\n\n\nnats.go\ngodoc\n\n\nnats.java\njavadoc\n\n\nnats.net\ndoxygen\n\n\nnats.rb\nyard\n\n\nnats.ts\nts-doc\n\n\n\nNot all libraries contain this separate doc, depending on the language community, but be sure to check out the client libraries README for more information.\n"},"developer/concepts/intro.html":{"url":"developer/concepts/intro.html","title":"Concepts","keywords":"","body":"NATS Messaging Concepts\nNATS messaging involves the electronic exchange of data among computer applications and provides a layer between the application and the underlying physical network. Application data is encoded as a message and sent by a publisher. The message is received, decoded, and processed by one or more subscribers.\nBy providing a central, easily discovered broker, NATS makes it easy for programs to communicate across different environments, languages, and systems. All clients have to do is connect to the broker, subscribe or publish to a subject and process messages. With this simple design, NATS lets programs share common message-handling code, isolate resources and interdependencies, and scale by easily handling an increase in message volume.\n\ngraph nats {\n graph [splines=ortho, nodesep=1];\n\n publisher [shape=\"record\", label=\"{Application 1 | NATS Publisher}\"];\n application [shape=\"record\", label=\"{Application 3 | }\"];\n gnatsd [shape=\"box\", label=\"\", width=4, height=0, penwidth=1];\n subscriber [shape=\"record\", label=\"{ NATS Subscriber | Application 2}\"];\n\n publisher:nats -- gnatsd [penwidth=2];\n application:nats -- gnatsd;\n gnatsd -- subscriber:nats [penwidth=2, dir=\"forward\"];\n}\n\n\nNATS core offers an at most once quality of service. If a subscriber is not listening on the subject (no subject match), or is not active when the message is sent, the message is not received. This is the same level of guarantee that TCP/IP provides. By default, NATS is a fire-and-forget messaging system. If you need higher levels of service, you can either use NATS Streaming, or build the additional reliability into your client(s) yourself.\n"},"developer/concepts/subjects.html":{"url":"developer/concepts/subjects.html","title":"Subject-Based Messaging","keywords":"","body":"Subject-based Messaging\nFundamentally NATS is about publishing and listening for messages. Both of these depend heavily on Subjects which scope messages into streams or topics. At its simplest, a subject is just a string of characters that form a name the publisher and subscriber can used to find each other.\n\ndigraph g {\n rankdir=LR\n publisher [shape=box, style=\"rounded\", label=\"PUB time.us\"];\n subject [shape=circle, label=\"gnatsd\"];\n sub1 [shape=box, style=\"rounded\", label=\"SUB time.us\"];\n sub2 [shape=box, style=\"rounded\", label=\"SUB time.us\"];\n\n publisher -> subject [label=\"msg\"];\n subject -> sub1 [label=\"msg\"];\n subject -> sub2 [label=\"msg\"];\n}\n\n\n The NATS server reserves a few characters as special, and the specification says that only \"alpha-numeric\" characters plus the \".\" should be used in subject names. Subjects are case-sensitive and can not contain whitespace. For safety across clients, ASCII characters should be used, although this is subject to change in the future.\nSubject Hierarchies\nThe . character is used to create a subject hierarchy. For example, a world clock application might define the following to logically group related subjects:\ntime.us\ntime.us.east\ntime.us.east.atlanta\ntime.eu.east\ntime.us.east.warsaw\n\nto logically group related subjects.\nWildcards\nNATS provides two wildcards that can take the place of one or more elements in a dot-separated subject. Subscribers can use these wildcards to listen to multiple subjects with a single subscription but Publishers will always use a fully specified subject, without the wildcard.\nMatching A Single Token\nThe first wildcard is * which will match a single token. For example, if an application wanted to listen for eastern time zones, they could subscribe to time.*.east, which would match time.us.east and time.eu.east.\n\ndigraph g {\n rankdir=LR\n publisher [shape=box, style=\"rounded\", label=\"PUB time.us.east\"];\n subject [shape=circle, label=\"gnatsd\"];\n sub1 [shape=box, style=\"rounded\", label=\"SUB time.*.east\"];\n sub2 [shape=box, style=\"rounded\", label=\"SUB time.us.east\"];\n\n publisher -> subject [label=\"msg\"];\n subject -> sub1 [label=\"msg\"];\n subject -> sub2 [label=\"msg\"];\n}\n\n\nMatching Multiple Tokens\nThe second wildcard is > which will match one or more tokens, and can only appear at the end of the subject. For example, time.us.> will match time.us.east and time.us.east.atlanta, while time.us.* would only match time.us.east since it can't match more than one token.\n\ndigraph g {\n rankdir=LR\n publisher [shape=box, style=\"rounded\", label=\"PUB time.us.east.atlanta\"];\n subject [shape=circle, label=\"gnatsd\"];\n sub1 [shape=box, style=\"rounded\", label=\"SUB time.us.east.atlanta\"];\n sub2 [shape=box, style=\"rounded\", label=\"SUB time.us.*\"];\n sub3 [shape=box, style=\"rounded\", label=\"SUB time.us.>\"];\n\n publisher -> subject [label=\"msg\"];\n subject -> sub2 [style=\"invis\"];\n subject -> sub1 [label=\"msg\"];\n subject -> sub3 [label=\"msg\"];\n}\n\n\nMonitoring and Wire Taps\nSubject to your security configuration, wildcards can be used for monitoring by creating something sometimes called a wire tap. In the simplest case you can create a subscriber for >. This application will receive all messages, again subject to security settings, sent on your NATS cluster.\n"},"developer/concepts/pubsub.html":{"url":"developer/concepts/pubsub.html","title":"Publish-Subscribe","keywords":"","body":"Publish-Subscribe and Fan-Out\nNATS implements a publish-subscribe message distribution model for one-to-many communication. A publisher sends a message on a subject and any active subscriber listening on that subject receives the message. Subscribers can also register interest in wildcard subjects that work a bit like a regular expression (but only a bit). This one-to-many pattern is sometimes called fan-out.\n\ndigraph nats_pub_sub {\n rankdir=LR\n publisher [shape=box, style=\"rounded\", label=\"Publisher\"];\n subject [shape=circle, label=\"Subject\"];\n sub1 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n sub2 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n sub3 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n\n publisher -> subject [label=\"msg1\"];\n subject -> sub1 [label=\"msg1\"];\n subject -> sub2 [label=\"msg1\"];\n subject -> sub3 [label=\"msg1\"];\n}\n\n\nTry NATS publish subscribe on your own, using a live server by walking through the pub-sub tutorial.\n"},"developer/concepts/reqreply.html":{"url":"developer/concepts/reqreply.html","title":"Request-Reply","keywords":"","body":"Request-Reply and Scatter-Gather\nNATS supports two flavors of request reply messaging: point-to-point or one-to-many. Point-to-point involves the fastest or first to respond. In a one-to-many exchange, you can set a limit on the number of responses the requestor may receive or use a timeout to limit on the speed of the response. One-to-many request reply is sometimes called scatter gather.\nIn a request-response exchange the publish request operation publishes a message with a reply subject expecting a response on that reply subject. Many libraries allow you to use a function that will automatically wait for a response with a timeout. You can also handle that waiting process yourself.\nThe common pattern used by the libraries is that the request creates a unique inbox and performs a request call with the inbox reply and returns the first reply received. This is optimized in the case of multiple responses by ignoring later responses automatically.\n\ndigraph nats_request_reply {\n rankdir=LR\n\n subgraph {\n publisher [shape=box, style=\"rounded\", label=\"Publisher\"];\n }\n\n subgraph {\n subject [shape=circle, label=\"Subject\"];\n reply [shape=circle, label=\"Reply\"];\n {rank = same subject reply}\n }\n\n subgraph {\n sub1 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n sub2 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n sub3 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n }\n\n publisher -> subject [label=\"msg1\"];\n publisher -> reply [style=\"invis\", weight=2];\n reply -> sub3 [style=\"invis\", weight=2];\n subject -> sub1 [label=\"msg1\", style=\"dotted\"];\n subject -> sub2 [label=\"msg1\", style=\"dotted\"];\n subject -> sub3 [label=\"msg1\"];\n sub3 -> reply;\n reply -> publisher;\n}\n\n\nTry NATS request reply on your own, using a live server by walking through the request/reply tutorial.\n"},"developer/concepts/queue.html":{"url":"developer/concepts/queue.html","title":"Queue Groups","keywords":"","body":"Queue Subscribers & Sharing Work\nNATS provides a load balancing feature called queue subscriptions. Using queue subscribers will load balance message delivery across a group of subscribers which can be used to provide application fault tolerance and scale workload processing.\nTo create a queue subscription, subscribers register a queue name. All subscribers with the same queue name form the queue group. As messages on the registered subject are published, one member of the group is chosen randomly to receive the message. Although queue groups have multiple subscribers, each message is consumed by only one.\nOne of the great features of NATS is that queue groups are defined by the subscribers, not on the server. Applications can create new queue groups without any server change.\nQueue subscribers are ideal for auto scaling as you can add or remove them anytime, without any configuration changes or restarting the server or clients.\n\ndigraph nats_queues {\n rankdir=LR\n publisher [shape=box, style=\"rounded\", label=\"Publisher\"];\n subject [shape=circle, label=\"Queue\"];\n sub1 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n sub2 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n sub3 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n\n publisher -> subject [label=\"msgs 1,2,3\"];\n subject -> sub1 [label=\"msg 2\"];\n subject -> sub2 [label=\"msg 1\"];\n subject -> sub3 [label=\"msg 3\"];\n}\n\n\nTry NATS queue subscriptions on your own, using a live server by walking through the queueing tutorial.\n"},"developer/concepts/acks.html":{"url":"developer/concepts/acks.html","title":"Acknowledgements","keywords":"","body":"Acknowledgements\nIn a system with at-most-once semantics, there are times when messages are lost. If your application is doing request-reply then it can simply use timeouts to handle network and application failures. When you are using one-way messaging the easiest way to insure message delivery is to turn it into a request-reply with the concept of an acknowledgement message, or ACKS. In NATS an ACK can simply be an empty message, a message with no body.\n\ndigraph nats_request_reply {\n rankdir=LR\n\n subgraph {\n publisher [shape=box, style=\"rounded\", label=\"Publisher\"];\n }\n\n subgraph {\n subject [shape=circle, label=\"Subject\"];\n reply [shape=circle, label=\"Reply\"];\n {rank = same subject reply}\n }\n\n subgraph {\n sub1[shape=box, style=\"rounded\", label=\"Subscriber\"];\n }\n\n publisher -> subject [label=\"msg1\"];\n publisher -> reply [style=\"invis\", weight=2];\n subject -> sub1 [label=\"msg1\"];\n sub1 -> reply [label=\"ack\"];\n reply -> publisher;\n}\n\n\nBecause the ACK can be empty it can take up very little network bandwidth, but the idea of the ACK turns a simple fire-and-forget into a fire-and-know world where the sender can be sure that the message was received by the other side, or with scatter-gather, several other sides.\n"},"developer/concepts/seq_num.html":{"url":"developer/concepts/seq_num.html","title":"Sequence Numbers","keywords":"","body":"Sequence Numbers\nA common problem for one-to-many messages is that a message can get lost or dropped due to a network failure. A simple pattern for resolving this situation is to include a sequence id with the message. Receivers can check the sequence id to see if they miss anything.\n\ndigraph nats_pub_sub {\n rankdir=LR\n publisher [shape=box, style=\"rounded\", label=\"Publisher\"];\n subject [shape=circle, label=\"Subject\"];\n sub [shape=box, style=\"rounded\", label=\"Subscriber\"];\n\n publisher -> subject [label=\"updates.1\"];\n publisher -> subject [label=\"updates.2\"];\n publisher -> subject [label=\"updates.3\"];\n\n subject -> sub [label=\"updates.*\"];\n}\n\n\nIn order to really leverage sequence ids there are a few things to keep in mind:\n\nEach sender will have to use their own sequence\nIf possible, receivers should be able to ask for missing messages by id\n\nWith NATS you can embed sequence ids in the message, or you can include them in the subject. For example, a sender can send messages to updates.1, updates.2, etc... and the subscribers can listen to updates.* and optionally parse the subject to determine the sequence id.\n"},"developer/connecting/intro.html":{"url":"developer/connecting/intro.html","title":"Connecting","keywords":"","body":"Connecting to NATS\nMost client libraries provide several ways to connect to the NATS server. The server itself is identified by a standard URL with the nats protocol. Throughout these examples we will rely on a test server, provided by nats.io, at nats://demo.nats.io:4222, where 4222 is the default port for NATS.\nNATS clients also support the tls protocol to indicate that the client wants to use TLS. So in the previous example we can replace nats with tls to get tls://demo.nats.io:4222.\nThe protocol requirement is being removed from many libraries, so that you can use demo.nats.io:4222 as the URL and let the client and server resolve whether or not TLS is required.\nThere are numerous options for a NATS connections ranging from timeouts to reconnect settings.\n"},"developer/connecting/default_server.html":{"url":"developer/connecting/default_server.html","title":"Connecting to the Default Server","keywords":"","body":"Connecting to the Default Server\nSome libraries also provide a special way to connect to a default url, which is general nats://localhost:4222:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(nats.DefaultURL)\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect();\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect();\nnc.on('connect', (c) => {\n // Do something with the connection\n doSomething();\n // When done close it\n nc.close();\n});\nnc.on('error', (err) => {\n failed(err);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect()\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect();\n// Do something with the connection\n\n// When done close it\nnc.close();\n\n\n// alternatively, you can use the Promise pattern\nlet nc1: Client;\nconnect()\n .then((c) => {\n nc1 = c;\n // Do something with the connection\n nc1.close();\n });\n // add a .catch/.finally\n\n\t\n\t\n"},"developer/connecting/specific_server.html":{"url":"developer/connecting/specific_server.html","title":"Connecting to a Specific Server","keywords":"","body":"Connecting to a Specific Server\nThe NATS client libraries can take a full URL, nats://demo.nats.io:4222, to specify a specific server host and port to connect to.\nLibraries are removing the requirement for an explicit protocol and may allow nats://demo.nats.io:4222 or just demo.nats.io:4222. Check with your specific client library's documentation to see what URL formats are supported.\nFor example, to connect to the demo server with a URL you can use:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// If connecting to the default port, the URL can be simplified\n// to just the hostname/IP.\n// That is, the connect below is equivalent to:\n// nats.Connect(\"nats://demo.nats.io:4222\")\nnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect(\"nats://demo.nats.io:4222\");\nnc.on('connect', (c) => {\n // Do something with the connection\n doSomething();\n // When done close it\n nc.close();\n});\nnc.on('error', (err) => {\n failed(err);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers: [\"nats://demo.nats.io:4222\"]) do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\n let nc = await connect(\"nats://demo.nats.io:4222\");\n // Do something with the connection\n\n // Close the connection\n nc.close();\n\n\t\n\t\n"},"developer/connecting/cluster.html":{"url":"developer/connecting/cluster.html","title":"Connecting to a Cluster","keywords":"","body":"Connecting to a Cluster\nWhen connecting to a cluster, there are a few things to think about.\n\nPassing a URL for each cluster member (semi-optional)\nThe connection algorithm\nThe reconnect algorithm (discussed later)\nServer provided URLs\n\nWhen a client library first tries to connect it will use the list of URLS provided to the connection options or function. These URLS are checked, usually in order, and the first successful connection is used.\nAfter a client connects to the server, the server may provide a list of URLs for additional known servers. This allows a client to connect to one server and still have other servers available during reconnect.\nTo insure the initial connection, your code should include a list of reasonable front line servers. Those servers may know about other members of the cluster, and may tell the client about those members. But you don't have to configure the client to pass every valid member of the cluster in the connect method.\nBy providing the ability to pass multiple connect options NATS can handle the possibility of a machine going down or being unavailable to a client. By adding the ability of the server to feed clients a list of known servers as part of the client-server protocol the mesh created by a cluster can grow and change organically while the clients are running.\nNote, failure behavior is library dependent, please check the documentation for your client library on information about what happens if the connect fails.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tservers := []string{\"nats://localhost:1222\",\n\t\"nats://localhost:1223\",\n\t\"nats://localhost:1224\",\n}\n\nnc, err := nats.Connect(strings.Join(servers, \",\"))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://localhost:1222\").\n server(\"nats://localhost:1223\").\n server(\"nats://localhost:1224\").\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n servers: [\n \"nats://demo.nats.io:4222\",\n \"nats://localhost:4222\"\n ]}\n);\n\nnc.on('connect', (c) => {\n // Do something with the connection\n doSomething();\n // When done close it\n nc.close();\n});\nnc.on('error', (err) => {\n failed(err);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect(servers=[\n \"nats://127.0.0.1:1222\",\n \"nats://127.0.0.1:1223\",\n \"nats://127.0.0.1:1224\"\n ])\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers: [\"nats://127.0.0.1:1222\", \"nats://127.0.0.1:1223\", \"nats://127.0.0.1:1224\"]) do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n servers: [\n \"nats://demo.nats.io:4222\",\n \"nats://localhost:4222\"\n ]\n});\n// Do something with the connection\n\n// When done close it\nnc.close();\n\n\t\n\t\n"},"developer/connecting/connect_timeout.html":{"url":"developer/connecting/connect_timeout.html","title":"Setting a Connect Timeout","keywords":"","body":"Setting a Connect Timeout\nEach library has its own, language preferred way, to pass connection options. One of the most common options is a connection timeout. To set the maximum time to connect to a server to 10 seconds:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(nats.DefaultURL, nats.Timeout(10*time.Second))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n connectionTimeout(Duration.ofSeconds(10)). // Set timeout\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\t// connection timeout is not supported on node-nats\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect(connect_timeout=2)\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\t# There is currently no connect timeout as part of the Ruby NATS client API, but you can use a timer to mimic it.\nrequire 'nats/client'\n\ntimer = EM.add_timer(5) do\n NATS.connect do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\n end\nend\nEM.cancel_timer(timer)\n\n\t\n\t\n\t\n\tlet nc = await connect({\n url: \"nats://demo.nats.io:4222\",\n timeout: 1000\n});\n\n\n\t\n\t\n"},"developer/connecting/pingpong.html":{"url":"developer/connecting/pingpong.html","title":"Ping/Pong Protocol","keywords":"","body":"Ping/Pong Protocol\nThe client and server use a simple PING/PONG protocol to check that they are both still connected. The client will ping the server on a regular, configured interval so that the server usually doesn't have to initiate the PING/PONG interaction.\n\ndigraph g {\n rankdir=LR\n client [shape=box, style=\"rounded\", label=\"NATS Client\"];\n gnatsd [shape=circle, label=\"gnatsd\"];\n\n client -> gnatsd [label=\"PING\"];\n gnatsd -> client [label=\"PONG\"];\n}\n\n\nSet the Ping Interval\nIf you have a connection that is going to be open a long time with few messages traveling on it, setting this PING interval can control how quickly the client will be notified of a problem. However on connections with a lot of traffic, the client will often figure out there is a problem between PINGS, and as a result the default PING interval is often on the order of minutes. To set the interval to 20s:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set Ping Interval to 20 seconds\nnc, err := nats.Connect(\"demo.nats.io\", nats.PingInterval(20*time.Second))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n pingInterval(Duration.ofSeconds(20)). // Set Ping Interval\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n pingInterval: 20*1000, //20s\n url: \"nats://demo.nats.io:4222\"\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n # Set Ping Interval to 20 seconds\n ping_interval=20,\n )\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(ping_interval: 20) do |nc|\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\n\n # Do something with the connection\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n pingInterval: 20*2000, //20s\n url: \"nats://demo.nats.io:4222\"\n});\nnc.close();\n\n\t\n\t\n\nLimit Outgoing Pings\nThe PING/PONG interaction is also used by most of the clients as a way to flush the connection to the server. Clients that cache outgoing messages provide a flush call that will run a PING/PONG. The flush will wait for the PONG to return, telling it that all cached messages have been processed, including the PING. The number of cached PING requests can be limited in most clients to insure that traffic problems are identified early. This configuration for max outgoing pings or similar will usually default to a small number and should only be increased if you are worried about fast flush traffic, perhaps in multiple threads.\nFor example, to set the maximum number of outgoing pings to 5:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\topts := nats.GetDefaultOptions()\nopts.Url = \"demo.nats.io\"\n// Set maximum number of PINGs out without getting a PONG back\n// before the connection will be disconnected as a stale connection.\nopts.MaxPingsOut = 5\n\nnc, err := opts.Connect()\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n maxPingsOut(5). // Set max pings in flight\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n maxPingOut: 5,\n url: \"nats://demo.nats.io:4222\"\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n # Set maximum number of PINGs out without getting a PONG back\n # before the connection will be disconnected as a stale connection.\n max_outstanding_pings=5,\n ping_interval=1,\n )\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(max_outstanding_pings: 5) do |nc|\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\n\n # Do something with the connection\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n maxPingOut: 5,\n url: \"nats://demo.nats.io:4222\"\n});\nnc.close();\n\n\t\n\t\n"},"developer/connecting/protocol.html":{"url":"developer/connecting/protocol.html","title":"Controlling the Client/Server Protocol","keywords":"","body":"Controlling the Client/Server Protocol\nThe protocol between the client and the server is fairly simple and relies on a control line and sometimes a body. The control line contains the operations being sent, like PING or PONG, followed by a carriage return and line feed, CRLF or \"\\r\\n\". The server has a setting that can limit the maximum size of a control line. For PING and PONG this doesn't come into play, but for messages that contain subject names, the control line length can be important. The server is also configured with a maximum payload size, which limits the size of a message body. The server sends the maximum payload size to the client at connect time but doesn't currently tell the client the maximum control line size.\nSet the Maximum Control Line Size\nSome clients will try to limit the control line size internally to prevent an error from the server. These clients may or may not allow you to set the size being used, but if they do, the size should be set to match the server configuration.\nFor example, to set the maximum control line size to 2k:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// This does not apply to the NATS Go Client\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n maxControlLine(2 * 1024). // Set the max control line to 2k\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\t// set this option before creating a connection\nNATS.MAX_CONTROL_LINE_SIZE = 1024*2;\nlet nc = NATS.connect({\n url: \"nats://demo.nats.io:4222\"\n});\n\n\n\t\n\t\n\t\n\t# Asyncio NATS client does not allow custom control lines\n\n\t\n\t\n\t\n\t# There is no need to customize this in the Ruby NATS client.\n\n\t\n\t\n\t\n\t// control line size is not configurable on ts-nats\n\n\t\n\t\n\nGet the Maximum Payload Size\nWhile the client can't control the maximum payload size, clients may provide a way for applications to get the size after the connection is made. This will allow the application to chunk or limit data as needed to pass through the server.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\nmp := nc.MaxPayload()\nlog.Printf(\"Maximum payload is %v bytes\", mp)\n\n// Do something with the max payload\n\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\nlong max = nc.getMaxPayload();\n// Do something with the max payload\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect(\"nats://demo.nats.io:4222\");\n\n// on node you *must* register an error listener. If not registered\n// the library emits an 'error' event, the node process will exit.\nnc.on('error', (err) => {\n t.log('client got an error:', err);\n});\nnc.on('connect', () => {\n t.log(nc.info.max_payload);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nprint(\"Maximum payload is %d bytes\" % nc.max_payload)\n\n# Do something with the max payload.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(max_outstanding_pings: 5) do |nc|\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\n\n # Do something with the max_payload\n puts \"Maximum Payload is #{nc.server_info[:max_payload]} bytes\"\nend\n\n\t\n\t\n\t\n\t// connect will happen once - the first connect\nnc.on('connect', (nc: Client, url: string, options: ServerInfo) => {\n // nc is the connection that connected\n t.log('client connected to', url);\n t.log('max_payload', options.max_payload);\n});\n\n\t\n\t\n\nTurn On Pedantic Mode\nThe NATS server provides a pedantic mode that does extra checks on the protocol. By default, this setting is off but you can turn it on:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\topts := nats.GetDefaultOptions()\nopts.Url = \"demo.nats.io\"\n// Turn on Pedantic\nopts.Pedantic = true\nnc, err := opts.Connect()\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n pedantic(). // Turn on pedantic\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n url: \"nats://demo.nats.io:4222\",\n pedantic: true\n});\n\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"], pedantic=True)\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(pedantic: true) do |nc|\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\n\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n url: \"nats://demo.nats.io:4222\",\n pedantic: true\n});\n\nnc.close();\n\n\t\n\t\n\nTurn On/Off Verbose Mode\nThe NATS server also provide a verbose mode. By default, verbose mode is enabled and the server will reply to every message from the client with either a +OK or a -ERR. Most clients turn off verbose mode, which disables all of the +OK traffic. Errors are rarely subject to verbose mode and client libraries handle them as documented. To turn on verbose mode, likely for testing:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\topts := nats.GetDefaultOptions()\nopts.Url = \"demo.nats.io\"\n// Turn on Verbose\nopts.Verbose = true\nnc, err := opts.Connect()\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n verbose(). // Turn on verbose\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n url: \"nats://demo.nats.io:4222\",\n verbose: true\n});\n\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"], verbose=True)\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(verbose: true) do |nc|\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\n\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n url: \"nats://demo.nats.io:4222\",\n verbose: true\n});\n\nnc.close();\n\n\t\n\t\n"},"developer/connecting/noecho.html":{"url":"developer/connecting/noecho.html","title":"Turning Off Echo'd Messages","keywords":"","body":"Turning Off Echo'd Messages\nBy default the server will echo messages. This means that if a publisher on a connection sends a message to a subject any subscribers on that same connection may receive the message. Turning off echo is a fairly new feature for the NATS server, but some of the clients already support it.\n\ndigraph {\n rankdir=LR;\n subgraph cluster_1 {\n shape=box;\n style=\"rounded\";\n label = \"Connection #1\";\n\n publisher [shape=box, style=\"rounded\", label=\"Publisher\"];\n subscriber_1 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n }\n subgraph cluster_2 {\n shape=box;\n style=\"rounded\";\n label = \"Connection #2\";\n\n subscriber_2 [shape=box, style=\"rounded\", label=\"Subscriber\"];\n }\n\n subject [shape=circle, label=\"Subject\"];\n\n publisher -> subject [label=\"msg\"];\n subject -> subscriber_1 [label=\"echo'd msg\", style=\"dashed\"];\n subject -> subscriber_2 [label=\"msg\"];\n}\n\n\nKeep in mind that each connection will have to turn off echo, and that it is per connection, not per application. Also, turning echo on and off can result in a major change to your applications communications protocol since messages will flow or stop flowing based on this setting and the subscribing code won't have any indication as to why.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Turn off echo\nnc, err := nats.Connect(\"demo.nats.io\", nats.NoEcho())\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n noEcho(). // Turn off echo\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\t// no_echo is not supported.\n\n\t\n\t\n\t\n\tncA = NATS()\nncB = NATS()\n\nawait ncA.connect(no_echo=True)\nawait ncB.connect()\n\nasync def handler(msg):\n # Messages sent by `ncA' will not be received.\n print(\"[Received] \", msg)\n\nawait ncA.subscribe(\"greetings\", cb=handler)\nawait ncA.flush()\nawait ncA.publish(\"greetings\", b'Hello World!')\nawait ncB.publish(\"greetings\", b'Hello World!')\n\n# Do something with the connection\n\nawait asyncio.sleep(1)\nawait ncA.drain()\nawait ncB.drain()\n\n\n\t\n\t\n\t\n\tNATS.start(\"nats://demo.nats.io:4222\", no_echo: true) do |nc|\n # ...\nend\n\n\t\n\t\n\t\n\tlet nc = await connect({\n url: \"nats://demo.nats.io:4222\", noEcho: true});\n\n\t\n\t\n"},"developer/reconnect/intro.html":{"url":"developer/reconnect/intro.html","title":"Automatic Reconnections","keywords":"","body":"Reconnecting\nMost, if not all, of the client libraries will reconnect to the server if they are disconnected due to a network problem. The reconnect logic can differ by library, so check your client library's documentation.\nIn general, the client will try to connect to all of the servers it knows about, either through the URLs provided in connect or the URLs provided by its most recent server. The library may have several options to help control reconnect behavior.\nThe list of servers used during reconnect is library dependent, but generally is constructed from the list of servers passed to the connect function/options and the list of servers provided by the most recent connected server.\nOne, sometimes important, detail is that the server URLS provided to clients by servers will use addresses, while the URLS provided to the connect function will usually be host names. As a result, it is possible, on reconnect, for the same server to be tried multiple times without the client knowing about the match.\n"},"developer/reconnect/disable.html":{"url":"developer/reconnect/disable.html","title":"Disabling Reconnect","keywords":"","body":"Disable Reconnect\nYou can disable automatic reconnect with connection options:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Disable reconnect attempts\nnc, err := nats.Connect(\"demo.nats.io\", nats.NoReconnect())\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n noReconnect(). // Disable reconnect attempts\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n reconnect: false,\n servers: [\"nats://demo.nats.io:4222\"]\n});\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect(\n servers=[\n \"nats://demo.nats.io:1222\",\n \"nats://demo.nats.io:1223\",\n \"nats://demo.nats.io:1224\"\n ],\n allow_reconnect=False,\n )\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers: [\"nats://127.0.0.1:1222\", \"nats://127.0.0.1:1223\", \"nats://127.0.0.1:1224\"], reconnect: false) do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n reconnect: false,\n servers: [\"nats://demo.nats.io:4222\"]\n});\nnc.close();\n\n\t\n\t\n"},"developer/reconnect/max.html":{"url":"developer/reconnect/max.html","title":"Set the Number of Reconnect Attempts","keywords":"","body":"Set the Number of Reconnect Attempts\nApplications can set the maximum reconnect attempts. Generally, this will limit the actual number of attempts total, but check your library documentation. For example, in Java, if the client knows about 3 servers and the maximum reconnects is set to 2, it will not try all of the servers. On the other hand, if the maximum is set to 6 it will try all of the servers twice before considering the reconnect a failure and closing.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set max reconnects attempts\nnc, err := nats.Connect(\"demo.nats.io\", nats.MaxReconnects(10))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n maxReconnects(10). // Set max reconnect attempts\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n maxReconnectAttempts: 10,\n servers: [\"nats://demo.nats.io:4222\"]\n});\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n max_reconnect_attempts=10,\n )\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers: [\"nats://127.0.0.1:1222\", \"nats://127.0.0.1:1223\", \"nats://127.0.0.1:1224\"], max_reconnect_attempts: 10) do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n maxReconnectAttempts: 10,\n servers: [\"nats://demo.nats.io:4222\"]\n});\nnc.close();\n\n\t\n\t\n"},"developer/reconnect/wait.html":{"url":"developer/reconnect/wait.html","title":"Pausing Between Reconnect Attempts","keywords":"","body":"Pausing Between Reconnect Attempts\nIt doesnโ€™t make much sense to try to connect to the same server over and over. To prevent this sort of thrashing, and wasted reconnect attempts, libraries provide a wait setting. This setting will pause the reconnect logic if the same server is being tried multiple times in a row. In the previous example, if you have 3 servers and 6 attempts, the Java library would loop over the three servers. If none were connectable, it will then try all three again. However, the Java client doesnโ€™t wait between each attempt, only when trying the same server again, so in that example the library may never wait. If on the other hand, you only provide a single server URL and 6 attempts, the library will wait between each attempt.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set reconnect interval to 10 seconds\nnc, err := nats.Connect(\"demo.nats.io\", nats.ReconnectWait(10*time.Second))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n reconnectWait(Duration.ofSeconds(10)). // Set Reconnect Wait\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n reconnectTimeWait: 10 * 1000, //10s\n servers: [\"nats://demo.nats.io:4222\"]\n});\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n reconnect_time_wait=10,\n )\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers: [\"nats://127.0.0.1:1222\", \"nats://127.0.0.1:1223\", \"nats://127.0.0.1:1224\"], reconnect_time_wait: 10) do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n reconnectTimeWait: 10*1000, //10s\n servers: [\"nats://demo.nats.io:4222\"]\n});\nnc.close();\n\n\t\n\t\n"},"developer/reconnect/random.html":{"url":"developer/reconnect/random.html","title":"Avoiding the Thundering Herd","keywords":"","body":"Avoiding the Thundering Herd\nWhen a server goes down, there is a possible anti-pattern called the Thundering Herd where all of the clients try to reconnect immediately creating a denial of service attack. In order to prevent this, most NATS client libraries randomize the servers they attempt to connect to. This setting has no effect if only a single server is used, but in the case of a cluster, randomization, or shuffling, will ensure that no one server bears the brunt of the client reconnect attempts.\nHowever, if you want to disable the randomization process, so that servers are always checked in the same order, you can do that in most libraries with a connection options:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tservers := []string{\"nats://localhost:1222\",\n\t\"nats://localhost:1223\",\n\t\"nats://localhost:1224\",\n}\n\nnc, err := nats.Connect(strings.Join(servers, \",\"), nats.DontRandomize())\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n noRandomize(). // Disable reconnect shuffle\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n noRandomize: false,\n servers: [\"nats://127.0.0.1:4443\",\n \"nats://demo.nats.io:4222\"\n ]\n});\n\n\t\n\t\n\t\n\tnc = NATS()\nawait nc.connect(\n servers=[\n \"nats://demo.nats.io:1222\",\n \"nats://demo.nats.io:1223\",\n \"nats://demo.nats.io:1224\"\n ],\n dont_randomize=True,\n )\n\n# Do something with the connection\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers: [\"nats://127.0.0.1:1222\", \"nats://127.0.0.1:1223\", \"nats://127.0.0.1:1224\"], dont_randomize_servers: true) do |nc|\n # Do something with the connection\n\n # Close the connection\n nc.close\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n noRandomize: false,\n servers: [\"nats://127.0.0.1:4443\",\n \"nats://demo.nats.io:4222\"\n ]\n});\nnc.close();\n\n\t\n\t\n"},"developer/reconnect/events.html":{"url":"developer/reconnect/events.html","title":"Listening for Reconnect Events","keywords":"","body":"Listening for Reconnect Events\nBecause reconnect is primarily under the covers many libraries provide an event listener you can use to be notified of reconnect events. This event can be especially important for applications sending a lot of messages.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Connection event handlers are invoked asynchronously\n// and the state of the connection may have changed when\n// the callback is invoked.\nnc, err := nats.Connect(\"demo.nats.io\",\n\tnats.DisconnectHandler(func(nc *nats.Conn) {\n\t\t// handle disconnect event\n\t}),\n\tnats.ReconnectHandler(func(nc *nats.Conn) {\n\t\t// handle reconnect event\n\t}))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n connectionListener((conn, type) -> {\n if (type == Events.RECONNECTED) {\n // handle reconnected\n } else if (type == Events.DISCONNECTED) {\n // handle disconnected, wait for reconnect\n }\n }).\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n maxReconnectAttempts: 10,\n servers: [\"nats://demo.nats.io:4222\"]\n});\n\nnc.on('reconnect', (c) => {\n console.log('reconnected');\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nasync def disconnected_cb():\n print(\"Got disconnected!\")\n\nasync def reconnected_cb():\n # See who we are connected to on reconnect.\n print(\"Got reconnected to {url}\".format(url=nc.connected_url.netloc))\n\nawait nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n reconnect_time_wait=10,\n reconnected_cb=reconnected_cb,\n disconnected_cb=disconnected_cb,\n )\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers: [\"nats://127.0.0.1:1222\", \"nats://127.0.0.1:1223\", \"nats://127.0.0.1:1224\"]) do |nc|\n # Do something with the connection\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n maxReconnectAttempts: 10,\n servers: [\"nats://demo.nats.io:4222\"]\n});\n// first argument is the connection (same as nc in this case)\n// second argument is the url of the server where the client\n// connected\nnc.on('reconnect', (conn, server) => {\n console.log('reconnected to', server);\n});\nnc.close();\n\n\t\n\t\n"},"developer/reconnect/buffer.html":{"url":"developer/reconnect/buffer.html","title":"Buffering Messages During Reconnect Attempts","keywords":"","body":"Buffering Messages During Reconnect Attempts\nThe NATS client libraries, try as much as possible to be fire and forget. One of the features that may be included in the library you are using is the ability to buffer outgoing messages when the connection is down.\nDuring a short reconnect, these client can allow applications to publish messages that, because the server is offline, will be cached in the client. The library will then send those messages on reconnect. When the maximum reconnect buffer is reached, messages will no longer be publishable by the client.\nBe aware, while the message appears to be sent to the application it is possible that it is never sent because the connection is never remade. Your applications should use patterns like acknowledgements to insure delivery.\nFor clients that support this feature, you are able to configure the size of this buffer with bytes, messages or both.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set reconnect buffer size in bytes (5 MB)\nnc, err := nats.Connect(\"demo.nats.io\", nats.ReconnectBufSize(5*1024*1024))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n reconnectBufferSize(5 * 1024 * 1024). // Set buffer in bytes\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\t// Reconnect buffer size is not configurable on node-nats\n\n\t\n\t\n\t\n\t# Asyncio NATS client currentply does not implement a reconnect buffer\n\n\t\n\t\n\t\n\t# There is currently no reconnect pending buffer as part of the Ruby NATS client.\n\n\t\n\t\n\t\n\t// Reconnect buffer size is not configurable on ts-nats\n\n\t\n\t\n\n\nAs mentioned throughout this document, each client library may behave slightly differently. Please check the documentation for the library you are using.\n\n"},"developer/security/intro.html":{"url":"developer/security/intro.html","title":"Securing Connections","keywords":"","body":"Securing Connections\nNATS provides several forms of security for your messages. First, you can turn on authorization which limits access to the NATS server. Second, access to specific subjects can be controlled. Third, you can use TLS to encrypt traffic between clients and the server. Finally, TLS can be used to verify client identities using certificates. By combining all of these methods you can protect access to data and data in motion.\nThe client doesn't have control over access controls, but clients do provide the configurations required to authenticate with the server and to turn on TLS.\n"},"developer/security/userpass.html":{"url":"developer/security/userpass.html","title":"Authenticating with a User and Password","keywords":"","body":"Authenticating with a User and Password\nFor this example, start the server using:\n> gnatsd --user myname --pass password\n\nYou can encrypt passwords to pass to gnatsd using a simple tool provided by the server:\n> go run mkpasswd.go -p\n> password: password\n> bcrypt hash: $2a$11$1oJy/wZYNTxr9jNwMNwS3eUGhBpHT3On8CL9o7ey89mpgo88VG6ba\n\nand use the hashed password in the server config. The client still uses the plain text version.\nThe code uses localhost:4222 so that you can start the server on your machine to try them out.\nConnecting with a User/Password\nWhen logging in with a password gnatsd will take either a plain text password or an encrypted password.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set a user and plain text password\nnc, err := nats.Connect(\"localhost\", nats.UserInfo(\"myname\", \"password\"))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://localhost:4222\").\n userInfo(\"myname\",\"password\"). // Set a user and plain text password\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({url: server.nats, user: \"myname\", pass: \"password\"});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://myname:password@demo.nats.io:4222\"])\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers:[\"nats://myname:password@127.0.0.1:4222\"], name: \"my-connection\") do |nc|\n nc.on_error do |e|\n puts \"Error: #{e}\"\n end\n\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\n\n nc.close\nend\n\n\t\n\t\n\t\n\tlet nc = await connect({url: server.nats, user: \"myname\", pass: \"password\"});\n\n\t\n\t\n\nConnecting with a User/Password in the URL\nMost clients make it easy to pass the user name and password by accepting them in the URL for the server. This standard format is:\n\nnats://user:password@server:port\n\nUsing this format, you can connect to a server using authentication as easily as you connected with a URL:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set a user and plain text password\nnc, err := nats.Connect(\"myname:password@localhost\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://myname:password@localhost:4222\");\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet url = `nats://myname:password@127.0.0.1:${port}`;\nlet nc = NATS.connect(url);\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://myname:password@demo.nats.io:4222\"])\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers:[\"nats://myname:password@127.0.0.1:4222\"], name: \"my-connection\") do |nc|\n nc.on_error do |e|\n puts \"Error: #{e}\"\n end\n\n nc.on_reconnect do\n puts \"Got reconnected to #{nc.connected_server}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"Got disconnected! #{reason}\"\n end\n\n nc.close\nend\n\n\t\n\t\n\t\n\tlet url = `nats://myname:password@127.0.0.1:${port}`;\nlet nc = await connect({url: url});\n\n\t\n\t\n"},"developer/security/token.html":{"url":"developer/security/token.html","title":"Authenticating with a Token","keywords":"","body":"Authenticating with a Token\nTokens are basically random strings, much like a password, and can provide a simple authentication mechanism in some situations. However, tokens are only as safe as they are secret so other authentication schemes can provide more security in large installations.\nFor this example, start the server using:\n> gnatsd --auth mytoken\n\nThe code uses localhost:4222 so that you can start the server on your machine to try them out.\nConnecting with a Token\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set a token\nnc, err := nats.Connect(\"localhost\", nats.Token(\"mytoken\"))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://localhost:4222\").\n token(\"mytoken\"). // Set a token\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({url: `nats://127.0.0.1:${port}`, token: \"mytoken!\"});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://mytoken@demo.nats.io:4222\"])\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\tNATS.start(token: \"deadbeef\") do |nc|\n puts \"Connected using token\"\nend\n\n\t\n\t\n\t\n\tlet nc = await connect({url: server.nats, token: \"mytoken\"});\n\n\t\n\t\n\nConnecting with a Token in the URL\nSome client libraries will allow you to pass the token as part of the server URL using the form:\n\nnats://token@server:port\n\nAgain, once you construct this URL you can connect as if this was a normal URL.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Token in URL\nnc, err := nats.Connect(\"mytoken@localhost\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://mytoken@localhost:4222\");//Token in URL\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n\t\n\tlet url = `nats://mytoken!@127.0.0.1:${port}`;\nlet nc = NATS.connect({url: url});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://mytoken@demo.nats.io:4222\"])\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\tNATS.start(\"deadbeef@127.0.0.1:4222\") do |nc|\n puts \"Connected using token!\"\nend\n\n\t\n\t\n\t\n\tlet url = `nats://:mytoken!@127.0.0.1:${port}`;\nlet nc = await connect({url: url});\n\n\t\n\t\n"},"developer/security/nkey.html":{"url":"developer/security/nkey.html","title":"Authenticating with an NKey","keywords":"","body":"Authenticating with an NKey\nThe 2.0 version of NATS server introduces a new challenge response authentication option. This challenge response is based on a wrapper we call NKeys which uses ED25519 signing. The server can use these keys in several ways for authentication. The simplest is for the server to be configured with a list of known public keys and for the clients to respond to the challenge by signing it with its private key. This challenge-response insures security by insuring that the client has the private key, but also protects the private key from the server which never has to actually see it.\nHandling challenge response may require more than just a setting in the connection options, depending on the client library.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\n \t\n\t\n\topt, err := nats.NkeyOptionFromSeed(\"seed.txt\")\nif err != nil {\n\tlog.Fatal(err)\n}\nnc, err := nats.Connect(\"localhost\", opt)\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tNKey theNKey = NKey.createUser(null); // really should load from somewhere\nOptions options = new Options.Builder().\n server(\"nats://localhost:4222\").\n authHandler(new AuthHandler(){\n public char[] getID() {\n try {\n return theNKey.getPublicKey();\n } catch (GeneralSecurityException|IOException|NullPointerException ex) {\n return null;\n }\n }\n\n public byte[] sign(byte[] nonce) {\n try {\n return theNKey.sign(nonce);\n } catch (GeneralSecurityException|IOException|NullPointerException ex) {\n return null;\n }\n }\n\n public char[] getJWT() {\n return null;\n }\n }).\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n"},"developer/security/creds.html":{"url":"developer/security/creds.html","title":"Authenticating with a Credentials File","keywords":"","body":"Authenticating with User Credentials File\nThe 2.0 version of NATS server introduced the idea of JWT-based authentication. Clients interact with this new scheme using a user JWT and the private key from an NKey pair. To help make connecting with a JWT easier, the client libraries support the concept of a credentials file. This file contains both the private key and the JWT and can be generated with the nsc tool. The contents will look like the following and should be protected because it contains a private key. This creds file is unused and only for example purposes.\n-----BEGIN NATS USER JWT-----\neyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJUVlNNTEtTWkJBN01VWDNYQUxNUVQzTjRISUw1UkZGQU9YNUtaUFhEU0oyWlAzNkVMNVJBIiwiaWF0IjoxNTU4MDQ1NTYyLCJpc3MiOiJBQlZTQk0zVTQ1REdZRVVFQ0tYUVM3QkVOSFdHN0tGUVVEUlRFSEFKQVNPUlBWV0JaNEhPSUtDSCIsIm5hbWUiOiJvbWVnYSIsInN1YiI6IlVEWEIyVk1MWFBBU0FKN1pEVEtZTlE3UU9DRldTR0I0Rk9NWVFRMjVIUVdTQUY3WlFKRUJTUVNXIiwidHlwZSI6InVzZXIiLCJuYXRzIjp7InB1YiI6e30sInN1YiI6e319fQ.6TQ2ilCDb6m2ZDiJuj_D_OePGXFyN3Ap2DEm3ipcU5AhrWrNvneJryWrpgi_yuVWKo1UoD5s8bxlmwypWVGFAA\n------END NATS USER JWT------\n\n************************* IMPORTANT *************************\nNKEY Seed printed below can be used to sign and prove identity.\nNKEYs are sensitive and should be treated as secrets.\n\n-----BEGIN USER NKEY SEED-----\nSUAOY5JZ2WJKVR4UO2KJ2P3SW6FZFNWEOIMAXF4WZEUNVQXXUOKGM55CYE\n------END USER NKEY SEED------\n\n*************************************************************\n\nGiven a creds file, a client can authenticate as a specific user belonging to a specific account:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"localhost\", nats.UserCredentials(\"path_to_creds_file\"))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tOptions options = new Options.Builder().\n server(\"nats://localhost:4222\").\n authHandler(Nats.credentials(\"path_to_creds_file\")).\n build();\nConnection nc = Nats.connect(options);\n\n// Do something with the connection\n\nnc.close();\n\n\t\n\t\n"},"developer/security/tls.html":{"url":"developer/security/tls.html","title":"Encrypting Connections with TLS","keywords":"","body":"Encrypting Connections with TLS\nWhile authentication limits which clients can connect, TLS can be used to check the serverโ€™s identity and the clientโ€™s identity and will encrypt the traffic between the two. The most secure version of TLS with NATS is to use verified client certificates. In this mode, the client can check that it trusts the certificate sent by gnatsd but the server will also check that it trusts the certificate sent by the client. From an applications perspective connecting to a server that does not verify client certificates may appear identical. Under the covers, disabling TLS verification removes the server side check on the clientโ€™s certificate. When started in TLS mode, gnatsd will require all clients to connect with TLS. Moreover, if configured to connect with TLS, client libraries will fail to connect to a server without TLS.\nThe Java examples repository contains certificates for starting the server in TLS mode.\n> gnatsd -c /src/main/resources/tls.conf\n or\n> gnatsd -c /src/main/resources/tls_verify.conf\n\nConnecting with TLS\nConnecting to a server with TLS is primarily an exercise in setting up the certificate and trust managers. For example:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"localhost\",\n\tnats.ClientCert(\"resources/certs/cert.pem\", \"resources/certs/key.pem\"),\n\tnats.RootCAs(\"resources/certs/ca.pem\"))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tclass SSLUtils {\n public static String KEYSTORE_PATH = \"src/main/resources/keystore.jks\";\n public static String TRUSTSTORE_PATH = \"src/main/resources/cacerts\";\n public static String STORE_PASSWORD = \"password\";\n public static String KEY_PASSWORD = \"password\";\n public static String ALGORITHM = \"SunX509\";\n\n public static KeyStore loadKeystore(String path) throws Exception {\n KeyStore store = KeyStore.getInstance(\"JKS\");\n BufferedInputStream in = new BufferedInputStream(new FileInputStream(path));\n\n try {\n store.load(in, STORE_PASSWORD.toCharArray());\n } finally {\n if (in != null) {\n in.close();\n }\n }\n\n return store;\n }\n\n public static KeyManager[] createTestKeyManagers() throws Exception {\n KeyStore store = loadKeystore(KEYSTORE_PATH);\n KeyManagerFactory factory = KeyManagerFactory.getInstance(ALGORITHM);\n factory.init(store, KEY_PASSWORD.toCharArray());\n return factory.getKeyManagers();\n }\n\n public static TrustManager[] createTestTrustManagers() throws Exception {\n KeyStore store = loadKeystore(TRUSTSTORE_PATH);\n TrustManagerFactory factory = TrustManagerFactory.getInstance(ALGORITHM);\n factory.init(store);\n return factory.getTrustManagers();\n }\n\n public static SSLContext createSSLContext() throws Exception {\n SSLContext ctx = SSLContext.getInstance(Options.DEFAULT_SSL_PROTOCOL);\n ctx.init(createTestKeyManagers(), createTestTrustManagers(), new SecureRandom());\n return ctx;\n }\n}\n\npublic class ConnectTLS {\n public static void main(String[] args) {\n\n try {\n SSLContext ctx = SSLUtils.createSSLContext();\n Options options = new Options.Builder().\n server(\"nats://localhost:4222\").\n sslContext(ctx). // Set the SSL context\n build();\n Connection nc = Nats.connect(options);\n \n // Do something with the connection\n\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\tlet caCert = fs.readFileSync(caCertPath);\nlet clientCert = fs.readFileSync(clientCertPath);\nlet clientKey = fs.readFileSync(clientKeyPath);\nlet nc = NATS.connect({\n url: url,\n tls: {\n ca: [caCert],\n key: [clientKey],\n cert: [clientCert]\n }\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nssl_ctx = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH)\nssl_ctx.load_verify_locations('ca.pem')\nssl_ctx.load_cert_chain(certfile='client-cert.pem',\n keyfile='client-key.pem')\nawait nc.connect(io_loop=loop, tls=ssl_ctx)\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"], tls=ssl_ctx)\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\tEM.run do\n\n options = {\n :servers => [\n 'nats://localhost:4222',\n ],\n :tls => {\n :private_key_file => './spec/configs/certs/key.pem',\n :cert_chain_file => './spec/configs/certs/server.pem'\n }\n }\n\n NATS.connect(options) do |nc|\n puts \"#{Time.now.to_f} - Connected to NATS at #{nc.connected_server}\"\n\n nc.subscribe(\"hello\") do |msg|\n puts \"#{Time.now.to_f} - Received: #{msg}\"\n end\n\n nc.flush do\n nc.publish(\"hello\", \"world\")\n end\n\n EM.add_periodic_timer(0.1) do\n next unless nc.connected?\n nc.publish(\"hello\", \"hello\")\n end\n\n # Set default callbacks\n nc.on_error do |e|\n puts \"#{Time.now.to_f } - Error: #{e}\"\n end\n\n nc.on_disconnect do |reason|\n puts \"#{Time.now.to_f} - Disconnected: #{reason}\"\n end\n\n nc.on_reconnect do |nc|\n puts \"#{Time.now.to_f} - Reconnected to NATS server at #{nc.connected_server}\"\n end\n\n nc.on_close do\n puts \"#{Time.now.to_f} - Connection to NATS closed\"\n EM.stop\n end\n end\nend\n\n\t\n\t\n\t\n\tlet caCert = readFileSync(caCertPath);\nlet clientCert = readFileSync(clientCertPath);\nlet clientKey = readFileSync(clientKeyPath);\nlet nc = await connect({\n url: url,\n tls: {\n ca: [caCert],\n key: [clientKey],\n cert: [clientCert]\n }\n});\n\n\t\n\t\n\nConnecting with the TLS Protocol\nSome clients may support the tls protocol as well as a manual setting to turn on TLS. However, in that case there is likely some form of default or environmental settings to allow the TLS libraries to find certificate and trust stores.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"localhost\",\n\tnats.Secure(),\n\tnats.RootCAs(\"resources/certs/ca.pem\")) // May need this if server is using self-signed certificate\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tclass SSLUtils2 {\n public static String KEYSTORE_PATH = \"src/main/resources/keystore.jks\";\n public static String TRUSTSTORE_PATH = \"src/main/resources/cacerts\";\n public static String STORE_PASSWORD = \"password\";\n public static String KEY_PASSWORD = \"password\";\n public static String ALGORITHM = \"SunX509\";\n\n public static KeyStore loadKeystore(String path) throws Exception {\n KeyStore store = KeyStore.getInstance(\"JKS\");\n BufferedInputStream in = new BufferedInputStream(new FileInputStream(path));\n\n try {\n store.load(in, STORE_PASSWORD.toCharArray());\n } finally {\n if (in != null) {\n in.close();\n }\n }\n\n return store;\n }\n\n public static KeyManager[] createTestKeyManagers() throws Exception {\n KeyStore store = loadKeystore(KEYSTORE_PATH);\n KeyManagerFactory factory = KeyManagerFactory.getInstance(ALGORITHM);\n factory.init(store, KEY_PASSWORD.toCharArray());\n return factory.getKeyManagers();\n }\n\n public static TrustManager[] createTestTrustManagers() throws Exception {\n KeyStore store = loadKeystore(TRUSTSTORE_PATH);\n TrustManagerFactory factory = TrustManagerFactory.getInstance(ALGORITHM);\n factory.init(store);\n return factory.getTrustManagers();\n }\n\n public static SSLContext createSSLContext() throws Exception {\n SSLContext ctx = SSLContext.getInstance(Options.DEFAULT_SSL_PROTOCOL);\n ctx.init(createTestKeyManagers(), createTestTrustManagers(), new SecureRandom());\n return ctx;\n }\n}\n\npublic class ConnectTLSURL {\n public static void main(String[] args) {\n\n try {\n SSLContext.setDefault(SSLUtils2.createSSLContext()); // Set the default context\n Options options = new Options.Builder().\n server(\"tls://localhost:4222\"). // Use the TLS protocol\n build();\n Connection nc = Nats.connect(options);\n \n // Do something with the connection\n\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n url: \"tls://demo.nats.io:4443\",\n tls: true\n});\n\n\t\n\t\n\t\n\timport asyncio\nimport ssl\nimport certifi\nfrom nats.aio.client import Client as NATS\nfrom nats.aio.errors import ErrTimeout\n\nasync def run(loop):\n nc = NATS()\n\n # If using Python 3.7 in OS X and getting SSL errors, run first:\n #\n # /Applications/Python\\ 3.7/Install\\ Certificates.command\n #\n # Setting the tls as the scheme will use same defaults as `ssl.create_default_context()`\n #\n await nc.connect(\"tls://demo.nats.io:4443\", loop=loop)\n\n async def message_handler(msg):\n subject = msg.subject\n reply = msg.reply\n data = msg.data.decode()\n print(\"Received a message on '{subject} {reply}': {data}\".format(\n subject=subject, reply=reply, data=data))\n\n # Simple publisher and async subscriber via coroutine.\n sid = await nc.subscribe(\"foo\", cb=message_handler)\n await nc.flush()\n\n # Stop receiving after 2 messages.\n await nc.auto_unsubscribe(sid, 2)\n await nc.publish(\"foo\", b'Hello')\n await nc.publish(\"foo\", b'World')\n await nc.publish(\"foo\", b'!!!!!')\n await asyncio.sleep(1, loop=loop)\n await nc.close()\n\n\t\n\t\n\t\n\tEM.run do\n\n # In order to use TLS with the Ruby NATS client, use the :tls option\n # when customizing the connection with an empty block.\n options = {\n :servers => [\n 'nats://demo.nats.io:4443',\n ],\n :tls => {}\n }\n\n NATS.connect(options) do |nc|\n puts :connected\n end\nend\n\n\t\n\t\n\t\n\t// will throw an exception if connection fails\nlet nc = await connect({\n url: \"tls://demo.nats.io:4443\"\n});\n\nnc.close();\n\n\t\n\t\n"},"developer/receiving/intro.html":{"url":"developer/receiving/intro.html","title":"Receiving Messages","keywords":"","body":"Receiving Messages\nReceiving messages with NATS can be very library dependent.\nSome languages, like Go or Java, provide synchronous and asynchronous APIs, while others may only support one type of subscription.\nIn all cases, the process of subscribing involves having the client library tell the NATS server that an application is interested in a particular subject.\nUnder the covers, the client library will assign a unique id to each subscription. This id is used when the server sends messages to a specific subscription. Each subscription gets a unique id, so if the same connection is used multiple times for the same subject, the server will send multiple copies of the same message. When an application is done with a subscription it unsubscribes which tells the server to stop sending messages.\n"},"developer/receiving/sync.html":{"url":"developer/receiving/sync.html","title":"Synchronous Subscriptions","keywords":"","body":"Synchronous Subscriptions\nSynchronous subscriptions require the application to poll for messages. This type of subscription is easy to set-up and use, but requires the application to deal with looping if multiple messages are expected. For situations where a single message is expected, synchronous subscriptions are sometimes easier to manage, depending on the language.\nFor example, to subscribe to the subject updates and receive a single message you could do:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Subscribe\nsub, err := nc.SubscribeSync(\"updates\")\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Wait for a message\nmsg, err := sub.NextMsg(10 * time.Second)\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Use the response\nlog.Printf(\"Reply: %s\", msg.Data)\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Subscribe\nSubscription sub = nc.subscribe(\"updates\");\n\n// Read a message\nMessage msg = sub.nextMessage(Duration.ZERO);\n\nString str = new String(msg.getData(), StandardCharsets.UTF_8);\nSystem.out.println(str);\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\t// node-nats subscriptions are always async.\n\n\t\n\t\n\t\n\t# Asyncio NATS client currently does not have a sync subscribe API\n\n\t\n\t\n\t\n\t# The Ruby NATS client subscriptions are all async.\n\n\t\n\t\n\t\n\t// ts-nats subscriptions are always async.\n\n\t\n\t\n"},"developer/receiving/async.html":{"url":"developer/receiving/async.html","title":"Asynchronous Subscriptions","keywords":"","body":"Asynchronous Subscriptions\nAsynchronous subscriptions use callbacks of some form to notify an application when a message arrives. These subscriptions are usually easier to work with, but do represent some form of internal work and resource usage, i.e. threads, by the library. Check your library's documentation for any resource usage associated with asynchronous subscriptions.\nThe following example subscribes to the subject updates and handles the incoming messages:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Use a WaitGroup to wait for a message to arrive\nwg := sync.WaitGroup{}\nwg.Add(1)\n\n// Subscribe\nif _, err := nc.Subscribe(\"updates\", func(m *nats.Msg) {\n\twg.Done()\n}); err != nil {\n\tlog.Fatal(err)\n}\n\n// Wait for a message to come in\nwg.Wait()\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Use a latch to wait for a message to arrive\nCountDownLatch latch = new CountDownLatch(1);\n\n// Create a dispatcher and inline message handler\nDispatcher d = nc.createDispatcher((msg) -> {\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(str);\n latch.countDown();\n});\n\n// Subscribe\nd.subscribe(\"updates\");\n\n// Wait for a message to come in\nlatch.await(); \n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\tnc.subscribe(\"updates\", (msg) => {\n t.log(msg);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nfuture = asyncio.Future()\n\nasync def cb(msg):\n nonlocal future\n future.set_result(msg)\n\nawait nc.subscribe(\"updates\", cb=cb)\nawait nc.publish(\"updates\", b'All is Well')\nawait nc.flush()\n\n# Wait for message to come in\nmsg = await asyncio.wait_for(future, 1)\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n nc.subscribe(\"updates\") do |msg|\n puts msg\n nc.close\n end\n\n nc.publish(\"updates\", \"All is Well\")\nend\n\n\n\t\n\t\n\t\n\tnc.subscribe(\"updates\", (err, msg) => {\n if(err) {\n console.log('error', err);\n } else {\n t.log(msg.data);\n }\n});\n\n\t\n\t\n"},"developer/receiving/unsubscribing.html":{"url":"developer/receiving/unsubscribing.html","title":"Unsubscribing","keywords":"","body":"Unsubscribing\nThe client libraries provide a means to unsubscribe a previous subscription request.\nThis process requires an interaction with the server, so for an asynchronous subscription there may be a small window of time where a message comes through as the unsubscribe is processed by the library. Ignoring that slight edge case, the client library will clean up any outstanding messages and tell the server that the subscription is no longer used.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Sync Subscription\nsub, err := nc.SubscribeSync(\"updates\")\nif err != nil {\n\tlog.Fatal(err)\n}\nif err := sub.Unsubscribe(); err != nil {\n\tlog.Fatal(err)\n}\n\n// Async Subscription\nsub, err = nc.Subscribe(\"updates\", func(_ *nats.Msg) {})\nif err != nil {\n\tlog.Fatal(err)\n}\nif err := sub.Unsubscribe(); err != nil {\n\tlog.Fatal(err)\n}\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\nDispatcher d = nc.createDispatcher((msg) -> {\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(str);\n});\n\n// Sync Subscription\nSubscription sub = nc.subscribe(\"updates\");\nsub.unsubscribe();\n\n// Async Subscription\nd.subscribe(\"updates\");\nd.unsubscribe(\"updates\");\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\t// set up a subscription to process a request\nlet sub = nc.subscribe(NATS.createInbox(), (msg, reply) => {\n if (msg.reply) {\n nc.publish(reply, new Date().toLocaleTimeString());\n }\n});\n\n// without arguments the subscription will cancel when the server receives it\n// you can also specify how many messages are expected by the subscription\nnc.unsubscribe(sub);\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nfuture = asyncio.Future()\n\nasync def cb(msg):\n nonlocal future\n future.set_result(msg)\n\nsid = await nc.subscribe(\"updates\", cb=cb)\nawait nc.publish(\"updates\", b'All is Well')\n\n# Remove interest in subject\nawait nc.unsubscribe(sid)\n\n# Won't be received...\nawait nc.publish(\"updates\", b'...')\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n Fiber.new do\n f = Fiber.current\n\n sid = nc.subscribe(\"time\") do |msg, reply|\n f.resume Time.now\n end\n\n nc.publish(\"time\", 'What is the time?', NATS.create_inbox)\n\n # Use the response\n msg = Fiber.yield\n puts \"Reply: #{msg}\"\n\n nc.unsubscribe(sid)\n\n # Won't be received\n nc.publish(\"time\", 'What is the time?', NATS.create_inbox)\n\n end.resume\nend\n\n\n\t\n\t\n\t\n\t// set up a subscription to process a request\nlet sub = await nc.subscribe(createInbox(), (err, msg) => {\n if (msg.reply) {\n nc.publish(msg.reply, new Date().toLocaleTimeString());\n } else {\n t.log('got a request for the time, but no reply subject was set.');\n }\n});\n\n// without arguments the subscription will cancel when the server receives it\n// you can also specify how many messages are expected by the subscription\nsub.unsubscribe();\n\n\t\n\t\n"},"developer/receiving/unsub_after.html":{"url":"developer/receiving/unsub_after.html","title":"Unsubscribing After N Messages","keywords":"","body":"Unsubscribing After a Specified Number of Messages\nNATS provides a special form of unsubscribe that is configured with a message count and takes effect when that many messages are sent to a subscriber. This mechanism is very useful if only a single message is expected.\nThe message count you provide is the total message count for a subscriber. So if you unsubscribe with a count of 1, the server will stop sending messages to that subscription after it has received one message. If the subscriber has already received one or more messages, the unsubscribe will be immediate. This action based on history can be confusing if you try to auto unsubscribe on a long running subscription, but is logical for a new one.\n\nAuto unsubscribe is based on the total messages sent to a subscriber, not just the new ones.\n\nAuto unsubscribe can also result in some tricky edge cases if a server cluster is used. The client will tell the server of the unsubscribe count when the application requests it. But if the client disconnects before the count is reached, it may have to tell another server of the remaining count. This dance between previous server notifications and new notifications on reconnect can result in unplanned behavior.\nFinally, most of the client libraries also track the max message count after an auto unsubscribe request. Which means that the client will stop allowing messages to flow even if the server has miscounted due to reconnects or some other failure in the client library.\nThe following example shows unsubscribe after a single message:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Sync Subscription\nsub, err := nc.SubscribeSync(\"updates\")\nif err != nil {\n\tlog.Fatal(err)\n}\nif err := sub.AutoUnsubscribe(1); err != nil {\n\tlog.Fatal(err)\n}\n\n// Async Subscription\nsub, err = nc.Subscribe(\"updates\", func(_ *nats.Msg) {})\nif err != nil {\n\tlog.Fatal(err)\n}\nif err := sub.AutoUnsubscribe(1); err != nil {\n\tlog.Fatal(err)\n}\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\nDispatcher d = nc.createDispatcher((msg) -> {\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(str);\n});\n\n// Sync Subscription\nSubscription sub = nc.subscribe(\"updates\");\nsub.unsubscribe(1);\n\n// Async Subscription\nd.subscribe(\"updates\");\nd.unsubscribe(\"updates\", 1);\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\t// `max` specifies the number of messages that the server will forward.\n// The server will auto-cancel.\nlet opts = {max: 10};\nlet sub = nc.subscribe(NATS.createInbox(), opts, (msg) => {\n t.log(msg);\n});\n\n// another way after 10 messages\nlet sub2 = nc.subscribe(NATS.createInbox(), (err, msg) => {\n t.log(msg.data);\n});\n// if the subscription already received 10 messages, the handler\n// won't get any more messages\nnc.unsubscribe(sub2, 10);\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nasync def cb(msg):\n print(msg)\n\nsid = await nc.subscribe(\"updates\", cb=cb)\nawait nc.auto_unsubscribe(sid, 1)\nawait nc.publish(\"updates\", b'All is Well')\n\n# Won't be received...\nawait nc.publish(\"updates\", b'...')\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n Fiber.new do\n f = Fiber.current\n\n nc.subscribe(\"time\", max: 1) do |msg, reply|\n f.resume Time.now\n end\n\n nc.publish(\"time\", 'What is the time?', NATS.create_inbox)\n\n # Use the response\n msg = Fiber.yield\n puts \"Reply: #{msg}\"\n\n # Won't be received\n nc.publish(\"time\", 'What is the time?', NATS.create_inbox)\n\n end.resume\nend\n\n\n\t\n\t\n\t\n\t// `max` specifies the number of messages that the server will forward.\n// The server will auto-cancel.\nlet opts = {max: 10};\nlet sub = await nc.subscribe(createInbox(), (err, msg) => {\n t.log(msg.data);\n}, opts);\n\n// another way after 10 messages\nlet sub2 = await nc.subscribe(createInbox(), (err, msg) => {\n t.log(msg.data);\n});\n// if the subscription already received 10 messages, the handler\n// won't get any more messages\nsub2.unsubscribe(10);\n\n\t\n\t\n"},"developer/receiving/reply.html":{"url":"developer/receiving/reply.html","title":"Replying to a Message","keywords":"","body":"Replying to a Message\nIncoming messages have an optional reply-to field. If that field is set, it will contain a subject to which a reply is expected.\nFor example, the following code will listen for that request and respond with the time.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Subscribe\nsub, err := nc.SubscribeSync(\"time\")\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Read a message\nmsg, err := sub.NextMsg(10 * time.Second)\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Get the time\ntimeAsBytes := []byte(time.Now().String())\n\n// Send the time\nnc.Publish(msg.Reply, timeAsBytes)\n\n// Flush and close the connection\nnc.Flush()\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Subscribe\nSubscription sub = nc.subscribe(\"time\");\n\n// Read a message\nMessage msg = sub.nextMessage(Duration.ZERO);\n\n// Get the time\nCalendar cal = Calendar.getInstance();\nSimpleDateFormat sdf = new SimpleDateFormat(\"HH:mm:ss\");\nbyte[] timeAsBytes = sdf.format(cal.getTime()).getBytes(StandardCharsets.UTF_8);\n\n// Send the time\nnc.publish(msg.getReplyTo(), timeAsBytes);\n\n// Flush and close the connection\nnc.flush(Duration.ZERO);\nnc.close();\n\n\t\n\t\n\t\n\t// set up a subscription to process a request\nnc.subscribe('time', (msg, reply) => {\n if (msg.reply) {\n nc.publish(msg.reply, new Date().toLocaleTimeString());\n }\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nfuture = asyncio.Future()\n\nasync def cb(msg):\n nonlocal future\n future.set_result(msg)\n\nawait nc.subscribe(\"time\", cb=cb)\n\nawait nc.publish_request(\"time\", new_inbox(), b'What is the time?')\nawait nc.flush()\n\n# Read the message\nmsg = await asyncio.wait_for(future, 1)\n\n# Send the time\ntime_as_bytes = \"{}\".format(datetime.now()).encode()\nawait nc.publish(msg.reply, time_as_bytes)\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n Fiber.new do\n f = Fiber.current\n\n nc.subscribe(\"time\") do |msg, reply|\n f.resume Time.now\n end\n\n nc.publish(\"time\", 'What is the time?', NATS.create_inbox)\n\n # Use the response\n msg = Fiber.yield\n puts \"Reply: #{msg}\"\n\n end.resume\nend\n\n\n\t\n\t\n\t\n\t// set up a subscription to process a request\nawait nc.subscribe('time', (err, msg) => {\n if (msg.reply) {\n nc.publish(msg.reply, new Date().toLocaleTimeString());\n } else {\n t.log('got a request for the time, but no reply subject was set.');\n }\n});\n\n\t\n\t\n"},"developer/receiving/wildcards.html":{"url":"developer/receiving/wildcards.html","title":"Wildcard Subscriptions","keywords":"","body":"Wildcards\nThere is no special code to subscribe with a wildcard subject. Wildcards are a normal part of the subject name.\nHowever, there is a common technique that may come in to play when you use wildcards. This technique is to use the subject provided with the incoming message to determine what to do with the message.\nFor example, you can subscribe using * and then act based on the actual subject.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Use a WaitGroup to wait for 2 messages to arrive\nwg := sync.WaitGroup{}\nwg.Add(2)\n\n// Subscribe\nif _, err := nc.Subscribe(\"time.*.east\", func(m *nats.Msg) {\n\tlog.Printf(\"%s: %s\", m.Subject, m.Data)\n\twg.Done()\n}); err != nil {\n\tlog.Fatal(err)\n}\n\n// Wait for the 2 messages to come in\nwg.Wait()\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Use a latch to wait for 2 messages to arrive\nCountDownLatch latch = new CountDownLatch(2);\n\n// Create a dispatcher and inline message handler\nDispatcher d = nc.createDispatcher((msg) -> {\n String subject = msg.getSubject();\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(subject + \": \" + str);\n latch.countDown();\n});\n\n// Subscribe\nd.subscribe(\"time.*.east\");\n\n// Wait for messages to come in\nlatch.await();\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\tnc.subscribe('time.us.*', (msg, reply, subject) => {\n // converting timezones correctly in node requires a library\n // this doesn't take into account *many* things.\n let time = \"\";\n switch (subject) {\n case 'time.us.east':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/New_York\"});\n break;\n case 'time.us.central':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Chicago\"});\n break;\n case 'time.us.mountain':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Denver\"});\n break;\n case 'time.us.west':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Los_Angeles\"});\n break;\n default:\n time = \"I don't know what you are talking about Willis\";\n }\n t.log(subject, time);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\n# Use queue to wait for 2 messages to arrive\nqueue = asyncio.Queue()\nasync def cb(msg):\n await queue.put_nowait(msg)\n\nawait nc.subscribe(\"time.*.east\", cb=cb)\n\n# Send 2 messages and wait for them to come in\nawait nc.publish(\"time.A.east\", b'A')\nawait nc.publish(\"time.B.east\", b'B')\n\nmsg_A = await queue.get()\nmsg_B = await queue.get()\n\nprint(\"Msg A:\", msg_A)\nprint(\"Msg B:\", msg_B)\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n Fiber.new do\n f = Fiber.current\n\n nc.subscribe(\"time.*.east\") do |msg, reply|\n f.resume Time.now\n end\n\n nc.publish(\"time.A.east\", \"A\")\n nc.publish(\"time.B.east\", \"B\")\n\n # Use the response\n msg_A = Fiber.yield\n puts \"Msg A: #{msg_A}\"\n\n msg_B = Fiber.yield\n puts \"Msg B: #{msg_B}\"\n\n end.resume\nend\n\n\n\t\n\t\n\t\n\tawait nc.subscribe('time.us.*', (err, msg) => {\n // converting timezones correctly in node requires a library\n // this doesn't take into account *many* things.\n let time = \"\";\n switch (msg.subject) {\n case 'time.us.east':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/New_York\"});\n break;\n case 'time.us.central':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Chicago\"});\n break;\n case 'time.us.mountain':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Denver\"});\n break;\n case 'time.us.west':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Los_Angeles\"});\n break;\n default:\n time = \"I don't know what you are talking about Willis\";\n }\n console.log(msg.subject, time);\n});\n\n\t\n\t\n\nor do something similar with >:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Use a WaitGroup to wait for 4 messages to arrive\nwg := sync.WaitGroup{}\nwg.Add(4)\n\n// Subscribe\nif _, err := nc.Subscribe(\"time.>\", func(m *nats.Msg) {\n\tlog.Printf(\"%s: %s\", m.Subject, m.Data)\n\twg.Done()\n}); err != nil {\n\tlog.Fatal(err)\n}\n\n// Wait for the 4 messages to come in\nwg.Wait()\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Use a latch to wait for 4 messages to arrive\nCountDownLatch latch = new CountDownLatch(4);\n\n// Create a dispatcher and inline message handler\nDispatcher d = nc.createDispatcher((msg) -> {\n String subject = msg.getSubject();\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(subject + \": \" + str);\n latch.countDown();\n});\n\n// Subscribe\nd.subscribe(\"time.>\");\n\n// Wait for messages to come in\nlatch.await();\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\tnc.subscribe('time.>', (msg, reply, subject) => {\n // converting timezones correctly in node requires a library\n // this doesn't take into account *many* things.\n let time = \"\";\n switch (subject) {\n case 'time.us.east':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/New_York\"});\n break;\n case 'time.us.central':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Chicago\"});\n break;\n case 'time.us.mountain':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Denver\"});\n break;\n case 'time.us.west':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Los_Angeles\"});\n break;\n default:\n time = \"I don't know what you are talking about Willis\";\n }\n t.log(subject, time);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\n# Use queue to wait for 4 messages to arrive\nqueue = asyncio.Queue()\nasync def cb(msg):\n await queue.put(msg)\n\nawait nc.subscribe(\"time.>\", cb=cb)\n\n# Send 2 messages and wait for them to come in\nawait nc.publish(\"time.A.east\", b'A')\nawait nc.publish(\"time.B.east\", b'B')\nawait nc.publish(\"time.C.west\", b'C')\nawait nc.publish(\"time.D.west\", b'D')\n\nfor i in range(0, 4):\n msg = await queue.get()\n print(\"Msg:\", msg)\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n Fiber.new do\n f = Fiber.current\n\n nc.subscribe(\"time.>\") do |msg, reply|\n f.resume Time.now.to_f\n end\n\n nc.publish(\"time.A.east\", \"A\")\n nc.publish(\"time.B.east\", \"B\")\n nc.publish(\"time.C.west\", \"C\")\n nc.publish(\"time.D.west\", \"D\")\n\n # Use the response\n 4.times do \n msg = Fiber.yield\n puts \"Msg: #{msg}\"\n end\n end.resume\nend\n\n\n\t\n\t\n\t\n\tawait nc.subscribe('time.>', (err, msg) => {\n // converting timezones correctly in node requires a library\n // this doesn't take into account *many* things.\n let time = \"\";\n switch (msg.subject) {\n case 'time.us.east':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/New_York\"});\n break;\n case 'time.us.central':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Chicago\"});\n break;\n case 'time.us.mountain':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Denver\"});\n break;\n case 'time.us.west':\n time = new Date().toLocaleTimeString(\"en-us\", {timeZone: \"America/Los_Angeles\"});\n break;\n default:\n time = \"I don't know what you are talking about Willis\";\n }\n t.log(msg.subject, time);\n});\n\n\t\n\t\n\nThe following example can be used to test these two subscribers. The * subscriber should receive at most 2 messages, while the > subscriber receives 4. More importantly the time.*.east subscriber won't receive on time.us.east.atlanta because that won't match.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\nzoneID, err := time.LoadLocation(\"America/New_York\")\nif err != nil {\n\tlog.Fatal(err)\n}\nnow := time.Now()\nzoneDateTime := now.In(zoneID)\nformatted := zoneDateTime.String()\n\nnc.Publish(\"time.us.east\", []byte(formatted))\nnc.Publish(\"time.us.east.atlanta\", []byte(formatted))\n\nzoneID, err = time.LoadLocation(\"Europe/Warsaw\")\nif err != nil {\n\tlog.Fatal(err)\n}\nzoneDateTime = now.In(zoneID)\nformatted = zoneDateTime.String()\n\nnc.Publish(\"time.eu.east\", []byte(formatted))\nnc.Publish(\"time.eu.east.warsaw\", []byte(formatted))\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\nZoneId zoneId = ZoneId.of(\"America/New_York\");\nZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);\nString formatted = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);\n\nnc.publish(\"time.us.east\", formatted.getBytes(StandardCharsets.UTF_8));\nnc.publish(\"time.us.east.atlanta\", formatted.getBytes(StandardCharsets.UTF_8));\n\nzoneId = ZoneId.of(\"Europe/Warsaw\");\nzonedDateTime = ZonedDateTime.ofInstant(Instant.now(), zoneId);\nformatted = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);\nnc.publish(\"time.eu.east\", formatted.getBytes(StandardCharsets.UTF_8));\nnc.publish(\"time.eu.east.warsaw\", formatted.getBytes(StandardCharsets.UTF_8));\n\nnc.flush(Duration.ZERO);\nnc.close();\n\n\t\n\t\n\t\n\tnc.publish('time.us.east');\nnc.publish('time.us.central');\nnc.publish('time.us.mountain');\nnc.publish('time.us.west');\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nawait nc.publish(\"time.us.east\", b'...')\nawait nc.publish(\"time.us.east.atlanta\", b'...')\n\nawait nc.publish(\"time.eu.east\", b'...')\nawait nc.publish(\"time.eu.east.warsaw\", b'...')\n\nawait nc.close()\n\n\n\t\n\t\n\t\n\tNATS.start do |nc|\n nc.publish(\"time.us.east\", '...')\n nc.publish(\"time.us.east.atlanta\", '...')\n\n nc.publish(\"time.eu.east\", '...')\n nc.publish(\"time.eu.east.warsaw\", '...')\n\n nc.drain\nend\n\n\t\n\t\n\t\n\tnc.publish('time.us.east');\nnc.publish('time.us.central');\nnc.publish('time.us.mountain');\nnc.publish('time.us.west');\n\n\t\n\t\n"},"developer/receiving/queues.html":{"url":"developer/receiving/queues.html","title":"Queue Subscriptions","keywords":"","body":"Queue Subscriptions\nSubscribing to a queue group is only slightly different than subscribing to a subject alone. The application simply includes a queue name with the subscription. The effect of including the group is fairly major, since the server will now load balance messages between the members of the queue group, but the code differences are minimal.\nKeep in mind that the queue groups in NATS are dynamic and do not require any server configuration. You can almost think of a regular subscription as a queue group of 1, but it is probably not worth thinking too much about that.\n\ndigraph g {\n rankdir=LR\n publisher [shape=box, style=\"rounded\", label=\"PUB updates\"];\n subject [shape=circle, label=\"gnatsd\"];\n sub1 [shape=box, style=\"rounded\", label=\"SUB updates workers\"];\n sub2 [shape=box, style=\"rounded\", label=\"SUB updates workers\"];\n sub3 [shape=box, style=\"rounded\", label=\"SUB updates workers\"];\n\n publisher -> subject [label=\"msgs 1,2,3\"];\n subject -> sub1 [label=\"msg 2\"];\n subject -> sub2 [label=\"msg 1\"];\n subject -> sub3 [label=\"msg 3\"];\n}\n\n\nAs an example, to subscribe to the queue workers with the subject updates:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Use a WaitGroup to wait for 10 messages to arrive\nwg := sync.WaitGroup{}\nwg.Add(10)\n\n// Create a queue subscription on \"updates\" with queue name \"workers\"\nif _, err := nc.QueueSubscribe(\"updates\", \"worker\", func(m *nats.Msg) {\n\twg.Done()\n}); err != nil {\n\tlog.Fatal(err)\n}\n\n// Wait for messages to come in\nwg.Wait()\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Use a latch to wait for 10 messages to arrive\nCountDownLatch latch = new CountDownLatch(10);\n\n// Create a dispatcher and inline message handler\nDispatcher d = nc.createDispatcher((msg) -> {\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(str);\n latch.countDown();\n});\n\n// Subscribe\nd.subscribe(\"updates\", \"workers\");\n\n// Wait for a message to come in\nlatch.await(); \n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\tnc.subscribe('updates', {queue: \"workers\"}, (msg) => {\n t.log('worker got message', msg);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nfuture = asyncio.Future()\n\nasync def cb(msg):\n nonlocal future\n future.set_result(msg)\n\nawait nc.subscribe(\"updates\", queue=\"workers\", cb=cb)\nawait nc.publish(\"updates\", b'All is Well')\n\nmsg = await asyncio.wait_for(future, 1)\nprint(\"Msg\", msg)\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n Fiber.new do\n f = Fiber.current\n\n nc.subscribe(\"updates\", queue: \"worker\") do |msg, reply|\n f.resume Time.now\n end\n\n nc.publish(\"updates\", \"A\")\n\n # Use the response\n msg = Fiber.yield\n puts \"Msg: #{msg}\"\n end.resume\nend\n\n\n\t\n\t\n\t\n\tawait nc.subscribe('updates', (err, msg) => {\n t.log('worker got message', msg.data);\n}, {queue: \"workers\"});\n\n\t\n\t\n\nIf you run this example with the publish examples that send to updates, you will see that one of the instances gets a message while the others you run won't. But the instance that receives the message will change.\n"},"developer/receiving/drain.html":{"url":"developer/receiving/drain.html","title":"Draining Messages Before Disconnect","keywords":"","body":"Draining Connections and Subscriptions\nA new feature being added across the NATS client libraries is the ability to drain connections or subscriptions. Closing a connection, or unsubscribing from a subscription are generally considered immediate requests. When you close or unsubscribe the library will halt messages in any pending queue or cache for subscribers. When you drain a subscription or connection, it will process any cached/pending messages before closing.\nDrain provides clients that use queue subscriptions with a way to bring down applications without losing any messages. A client can bring up a new queue member, drain and shut down the old queue member, all without losing messages sent to the old client. Without drain, there is the possibility of lost messages due to queue timing.\nThe libraries can provide drain on a connection or on a subscriber, or both.\nFor a connection the process is essentially:\n\nDrain subscriptions\nStop new messages from being published\nFlush any remaining messages\nClose\n\nAs an example of draining a connection:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\twg := sync.WaitGroup{}\nwg.Add(1)\n\nerrCh := make(chan error, 1)\n\n// To simulate a timeout, you would set the DrainTimeout()\n// to a value less than the time spent in the message callback,\n// so say: nats.DrainTimeout(10*time.Millisecond).\n\nnc, err := nats.Connect(\"demo.nats.io\",\n\tnats.DrainTimeout(10*time.Second),\n\tnats.ErrorHandler(func(_ *nats.Conn, _ *nats.Subscription, err error) {\n\t\terrCh \n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Use a latch to wait for a message to arrive\nCountDownLatch latch = new CountDownLatch(1);\n\n// Create a dispatcher and inline message handler\nDispatcher d = nc.createDispatcher((msg) -> {\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(str);\n latch.countDown();\n});\n\n// Subscribe\nd.subscribe(\"updates\");\n\n// Wait for a message to come in\nlatch.await();\n\n// Drain the connection, which will close it\nCompletableFuture drained = nc.drain(Duration.ofSeconds(10));\n\n// Wait for the drain to complete\ndrained.get();\n\n\t\n\t\n\t\n\timport asyncio\nfrom nats.aio.client import Client as NATS\n\nasync def example(loop):\n nc = NATS()\n\n await nc.connect(\"nats://127.0.0.1:4222\", loop=loop)\n\n async def handler(msg):\n print(\"[Received] \", msg)\n await nc.publish(msg.reply, b'I can help')\n\n # Can check whether client is in draining state\n if nc.is_draining:\n print(\"Connection is draining\")\n\n await nc.subscribe(\"help\", \"workers\", cb=handler)\n await nc.flush()\n\n requests = []\n for i in range(0, 10):\n request = nc.request(\"help\", b'help!', timeout=1)\n requests.append(request)\n\n # Wait for all the responses\n responses = []\n responses = await asyncio.gather(*requests)\n\n # Gracefully close the connection.\n await nc.drain()\n\n print(\"Received {} responses\".format(len(responses)))\n\n\t\n\t\n\t\n\tNATS.start(drain_timeout: 1) do |nc|\n NATS.subscribe('foo', queue: \"workers\") do |msg, reply, sub|\n nc.publish(reply, \"ACK:#{msg}\")\n end\n\n NATS.subscribe('bar', queue: \"workers\") do |msg, reply, sub|\n nc.publish(reply, \"ACK:#{msg}\")\n end\n\n NATS.subscribe('quux', queue: \"workers\") do |msg, reply, sub|\n nc.publish(reply, \"ACK:#{msg}\")\n end\n\n EM.add_timer(2) do\n next if NATS.draining?\n\n # Drain gracefully closes the connection.\n NATS.drain do\n puts \"Done draining. Connection is closed.\"\n end\n end\nend\n\n\t\n\t\n\t\n\tlet sub = await nc.subscribe('updates', (err, msg) => {\n t.log('worker got message', msg.data);\n}, {queue: \"workers\"});\n// [end drain_sub]\nnc.flush();\n\nawait nc.drain();\n// client must close when the connection drain resolves\nnc.close();\n\n\t\n\t\n\nThe mechanics of drain for a subscription are simpler:\n\nUnsubscribe at the server\nProcess known messages\nClean up\n\nThe API for drain can generally be used instead of unsubscribe:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer nc.Close()\n\n\tdone := sync.WaitGroup{}\n\tdone.Add(1)\n\n\tcount := 0\n\terrCh := make(chan error, 1)\n\n\tmsgAfterDrain := \"not this one\"\n\n\t// This callback will process each message slowly\n\tsub, err := nc.Subscribe(\"updates\", func(m *nats.Msg) {\n\t\tif string(m.Data) == msgAfterDrain {\n\t\t\terrCh \n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Use a latch to wait for a message to arrive\nCountDownLatch latch = new CountDownLatch(1);\n\n// Create a dispatcher and inline message handler\nDispatcher d = nc.createDispatcher((msg) -> {\n String str = new String(msg.getData(), StandardCharsets.UTF_8);\n System.out.println(str);\n latch.countDown();\n});\n\n// Subscribe\nd.subscribe(\"updates\");\n\n// Wait for a message to come in\nlatch.await();\n\n// Messages that have arrived will be processed\nCompletableFuture drained = d.drain(Duration.ofSeconds(10));\n\n// Wait for the drain to complete\ndrained.get();\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\t// Drain subscription is not supported.\n\n\t\n\t\n\t\n\timport asyncio\nfrom nats.aio.client import Client as NATS\n\nasync def example(loop):\n nc = NATS()\n\n await nc.connect(\"nats://127.0.0.1:4222\", loop=loop)\n\n async def handler(msg):\n print(\"[Received] \", msg)\n await nc.publish(msg.reply, b'I can help')\n\n # Can check whether client is in draining state\n if nc.is_draining:\n print(\"Connection is draining\")\n\n sid = await nc.subscribe(\"help\", \"workers\", cb=handler)\n await nc.flush()\n\n # Gracefully unsubscribe the subscription\n await nc.drain(sid)\n\n\n\t\n\t\n\t\n\t# There is currently no API to drain a single subscription, the whole connection can be drained though via NATS.drain\n\n\t\n\t\n\t\n\tlet sub = await nc.subscribe('updates', (err, msg) => {\n t.log('worker got message', msg.data);\n}, {queue: \"workers\"});\n\n\t\n\t\n\nBecause draining can involve messages flowing to the server, for a flush and asynchronous message processing, the timeout for drain should generally be higher than the timeout for a simple message request/reply or similar.\n"},"developer/receiving/structure.html":{"url":"developer/receiving/structure.html","title":"Structured Data","keywords":"","body":"Receiving Structured Data\nClient libraries may provide tools to help receive structured data, like JSON. The core traffic to the NATS server will always be byte arrays. For libraries that don't provide helpers, you can always encode and decode data before sending the associated bytes to the NATS client.\nFor example, to receive JSON you could do:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\nec, err := nats.NewEncodedConn(nc, nats.JSON_ENCODER)\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer ec.Close()\n\n// Define the object\ntype stock struct {\n\tSymbol string\n\tPrice int\n}\n\nwg := sync.WaitGroup{}\nwg.Add(1)\n\n// Subscribe\nif _, err := ec.Subscribe(\"updates\", func(s *stock) {\n\tlog.Printf(\"Stock: %s - Price: %v\", s.Symbol, s.Price)\n\twg.Done()\n}); err != nil {\n\tlog.Fatal(err)\n}\n\n// Wait for a message to come in\nwg.Wait()\n\n// Close the connection\nec.Close()\n\n\t\n\t\n\t\n\tclass StockForJsonSub {\n public String symbol;\n public float price;\n\n public String toString() {\n return symbol + \" is at \" + price;\n }\n}\n\npublic class SubscribeJSON {\n public static void main(String[] args) {\n\n try {\n Connection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n // Use a latch to wait for 10 messages to arrive\n CountDownLatch latch = new CountDownLatch(10);\n\n // Create a dispatcher and inline message handler\n Dispatcher d = nc.createDispatcher((msg) -> {\n Gson gson = new Gson();\n\n String json = new String(msg.getData(), StandardCharsets.UTF_8);\n StockForJsonSub stk = gson.fromJson(json, StockForJsonSub.class);\n \n // Use the object\n System.out.println(stk);\n\n latch.countDown();\n });\n\n // Subscribe\n d.subscribe(\"updates\");\n\n // Wait for a message to come in\n latch.await(); \n\n // Close the connection\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({\n url: \"nats://demo.nats.io:4222\",\n json: true\n});\n\nnc.subscribe('updates', (msg) => {\n if(msg && msg.ticker === 'TSLA') {\n t.log('got message:', msg);\n }\n});\n\n\n\t\n\t\n\t\n\timport asyncio\nimport json\nfrom nats.aio.client import Client as NATS\nfrom nats.aio.errors import ErrTimeout\n\nasync def run(loop):\n nc = NATS()\n\n await nc.connect(servers=[\"nats://127.0.0.1:4222\"], loop=loop)\n\n async def message_handler(msg):\n data = json.loads(msg.data.decode())\n print(data)\n\n sid = await nc.subscribe(\"updates\", cb=message_handler)\n await nc.flush()\n\n await nc.auto_unsubscribe(sid, 2)\n await nc.publish(\"updates\", json.dumps({\"symbol\": \"GOOG\", \"price\": 1200 }).encode())\n await asyncio.sleep(1, loop=loop)\n await nc.close()\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'json'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n nc.subscribe(\"updates\") do |msg|\n m = JSON.parse(msg)\n\n # {\"symbol\"=>\"GOOG\", \"price\"=>12}\n p m\n end\nend\n\n\t\n\t\n\t\n\tlet nc = await connect({\n url: \"nats://demo.nats.io:4222\",\n payload: Payload.JSON\n});\n\nnc.subscribe('updates', (err, msg) => {\n t.log('got message:', msg.data ? msg.data : \"no payload\");\n});\n\n\n\t\n\t\n"},"developer/sending/intro.html":{"url":"developer/sending/intro.html","title":"Sending Messages","keywords":"","body":"Sending Messages\nNATS sends and receives messages using a protocol that includes a target subject, an optional reply subject and an array of bytes. Some libraries may provide helpers to convert other data formats to and from bytes, but the NATS server will treat all messages as opaque byte arrays.\nAll of the NATS clients are designed to make sending a message simple. For example, to send the string โ€œAll is Wellโ€ to the โ€œupdatesโ€ subject as a UTF-8 string of bytes you would do:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\nif err := nc.Publish(\"updates\", []byte(\"All is Well\")); err != nil {\n\tlog.Fatal(err)\n}\n// Make sure the message goes through before we close\nnc.Flush()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\nnc.publish(\"updates\", \"All is Well\".getBytes(StandardCharsets.UTF_8));\n\n// Make sure the message goes through before we close\nnc.flush(Duration.ZERO);\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({url: \"nats://demo.nats.io:4222\", preserveBuffers: true});\nlet buf = Buffer.allocUnsafe(12);\nbuf.fill(\"All is well\");\nnc.publish('updates', buf);\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nawait nc.publish(\"updates\", b'All is Well')\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n nc.publish(\"updates\", \"All is Well\")\nend\n\n\t\n\t\n\t\n\tlet nc = await connect({\n url: \"nats://demo.nats.io:4222\",\n payload: Payload.BINARY\n});\n\nlet buf = Buffer.allocUnsafe(12);\nbuf.fill(\"All is Well\");\nnc.publish('updates', buf);\n\n\t\n\t\n"},"developer/sending/replyto.html":{"url":"developer/sending/replyto.html","title":"Including a Reply Subject","keywords":"","body":"Including a Reply Subject\nThe optional reply-to field when publishing a message can be used on the receiving side to respond. The reply-to subject is often called an inbox, and some libraries may provide a method for generating unique inbox subjects. For example to send a request to the subject time, with no content for the messages, you might:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Create a unique subject name\nuniqueReplyTo := nats.NewInbox()\n\n// Listen for a single response\nsub, err := nc.SubscribeSync(uniqueReplyTo)\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Send the request\nif err := nc.PublishRequest(\"time\", uniqueReplyTo, nil); err != nil {\n\tlog.Fatal(err)\n}\n\n// Read the reply\nmsg, err := sub.NextMsg(time.Second)\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Use the response\nlog.Printf(\"Reply: %s\", msg.Data)\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Create a unique subject name\nString uniqueReplyTo = NUID.nextGlobal();\n\n// Listen for a single response\nSubscription sub = nc.subscribe(uniqueReplyTo);\nsub.unsubscribe(1);\n\n// Send the request\nnc.publish(\"time\", uniqueReplyTo, null);\n\n// Read the reply\nMessage msg = sub.nextMessage(Duration.ofSeconds(1));\n\n// Use the response\nSystem.out.println(new String(msg.getData(), StandardCharsets.UTF_8));\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\t// set up a subscription to process the request\nnc.subscribe('time', (msg, reply) => {\n if(reply) {\n nc.publish(reply, new Date().toLocaleTimeString());\n }\n});\n\n// create a subscription subject that the responding send replies to\nlet inbox = NATS.createInbox();\nnc.subscribe(inbox, {max: 1}, (msg) => {\n t.log('the time is', msg);\n nc.close();\n});\n\nnc.publish('time', \"\", inbox);\n\n\t\n\t\n\t\n\tnc = NATS()\n\nfuture = asyncio.Future()\n\nasync def sub(msg):\n nonlocal future\n future.set_result(msg)\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\nawait nc.subscribe(\"time\", cb=sub)\n\nunique_reply_to = new_inbox()\nawait nc.publish_request(\"time\", unique_reply_to, b'')\n\n# Use the response\nmsg = await asyncio.wait_for(future, 1)\nprint(\"Reply:\", msg)\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n Fiber.new do\n f = Fiber.current\n\n nc.subscribe(\"time\") do |msg, reply|\n f.resume msg\n end\n\n nc.publish(\"time\", 'example', NATS.create_inbox)\n\n # Use the response\n msg = Fiber.yield\n puts \"Reply: #{msg}\"\n\n end.resume\nend\n\n\n\t\n\t\n\t\n\t// set up a subscription to process the request\nawait nc.subscribe('time', (err, msg) => {\n if (err) {\n // this example is running inside of a promise\n reject();\n return;\n }\n if (msg.reply) {\n nc.publish(msg.reply, new Date().toLocaleTimeString());\n }\n});\n\n// create a subscription subject that the responding send replies to\nlet inbox = createInbox();\nawait nc.subscribe(inbox, (err, msg) => {\n t.log('the time is', msg.data);\n // this example is running inside of a promise\n nc.close();\n resolve();\n}, {max: 1});\n\nnc.publish('time', \"\", inbox);\n\n\t\n\t\n"},"developer/sending/request_reply.html":{"url":"developer/sending/request_reply.html","title":"Request-Reply Semantics","keywords":"","body":"Request-Reply\nThe pattern of sending a message and receiving a response is encapsulated in most client libraries into a request method. Under the covers this method will publish a message with a unique reply-to subject and wait for the response before returning.\nIn the older versions of some libraries a completely new reply-to subject is created each time. In newer versions, a subject hierarchy is used so that a single subscriber in the client library listens for a wildcard, and requests are sent with a unique child subject of a single subject.\nThe primary difference between the request method and publishing with a reply-to is that the library is only going to accept one response, and in most libraries the request will be treated as a synchronous action. The library may even provide a way to set the timeout.\nFor example, updating the previous publish example we may request time with a one second timeout:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Send the request\nmsg, err := nc.Request(\"time\", nil, time.Second)\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Use the response\nlog.Printf(\"Reply: %s\", msg.Data)\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n// Send the request\nMessage msg = nc.request(\"time\", null, Duration.ofSeconds(1));\n\n// Use the response\nSystem.out.println(new String(msg.getData(), StandardCharsets.UTF_8));\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\tnc.requestOne('time', (msg) => {\n t.log('the time is', msg);\n nc.close();\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nasync def sub(msg):\n await nc.publish(msg.reply, b'response')\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\nawait nc.subscribe(\"time\", cb=sub)\n\n# Send the request\ntry:\n msg = await nc.request(\"time\", b'', timeout=1)\n # Use the response\n print(\"Reply:\", msg)\nexcept asyncio.TimeoutError:\n print(\"Timed out waiting for response\")\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n nc.subscribe(\"time\") do |msg, reply|\n nc.publish(reply, \"response\")\n end\n\n Fiber.new do\n # Use the response\n msg = nc.request(\"time\", \"\")\n puts \"Reply: #{msg}\"\n end.resume\nend\n\n\n\t\n\t\n\t\n\tlet msg = await nc.request('time', 1000);\nt.log('the time is', msg.data);\nnc.close();\n\n\t\n\t\n\nYou can think of request-reply in the library as a subscribe, get one message, unsubscribe pattern. In Go this might look something like:\nsub, err := nc.SubscribeSync(replyTo)\nif err != nil {\n log.Fatal(err)\n}\nnc.Flush()\n\n// Send the request\nnc.PublishRequest(subject, replyTo, []byte(input))\n\n// Wait for a single response\nfor {\n msg, err := sub.NextMsg(1 * time.Second)\n if err != nil {\n log.Fatal(err)\n }\n\n response = string(msg.Data)\n break\n}\nsub.Unsubscribe()\n\nScatter-Gather\nYou can expand the request-reply pattern into something often called scatter-gather. To receive multiple messages, with a timeout, you could do something like the following, where the loop getting messages is using time as the limitation, not the receipt of a single message:\nsub, err := nc.SubscribeSync(replyTo)\nif err != nil {\n log.Fatal(err)\n}\nnc.Flush()\n\n// Send the request\nnc.PublishRequest(subject, replyTo, []byte(input))\n\n// Wait for a single response\nmax := 100 * time.Millisecond\nstart := time.Now()\nfor time.Now().Sub(start) \nOr, you can loop on a counter and a timeout to try to get at least N responses:\nsub, err := nc.SubscribeSync(replyTo)\nif err != nil {\n log.Fatal(err)\n}\nnc.Flush()\n\n// Send the request\nnc.PublishRequest(subject, replyTo, []byte(input))\n\n// Wait for a single response\nmax := 500 * time.Millisecond\nstart := time.Now()\nfor time.Now().Sub(start) = minResponses {\n break\n }\n}\nsub.Unsubscribe()\n\n"},"developer/sending/caches.html":{"url":"developer/sending/caches.html","title":"Caches, Flush and Ping","keywords":"","body":"Caches, Flush and Ping\nFor performance reasons, most if not all, of the client libraries will cache outgoing data so that bigger chunks can be written to the network at one time. This may be as simple as a byte buffer that stores up a few messages before being pushed to the network.\nThese buffers do not hold messages forever, generally they are designed to hold messages in high throughput scenarios, while still providing good latency in low throughput situations.\nIt is the libraries job to make sure messages flow in a high performance manner. But there may be times when an application needs to know that a message has \"hit the wire.\" In this case, applications can use a flush call to tell the library to move data through the system.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\nif err := nc.Publish(\"updates\", []byte(\"All is Well\")); err != nil {\n\tlog.Fatal(err)\n}\n// Sends a PING and wait for a PONG from the server, up to the given timeout.\n// This gives guarantee that the server has processed above message.\nif err := nc.FlushTimeout(time.Second); err != nil {\n\tlog.Fatal(err)\n}\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\nnc.publish(\"updates\", \"All is Well\".getBytes(StandardCharsets.UTF_8));\nnc.flush(Duration.ofSeconds(1)); // Flush the message queue\n\nnc.close();\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({url: \"nats://demo.nats.io:4222\"});\nlet start = Date.now();\nnc.flush(() => {\n t.log('round trip completed in', Date.now() - start, 'ms');\n});\n\nnc.publish('foo');\n// function in flush is optional\nnc.flush();\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nawait nc.publish(\"updates\", b'All is Well')\n\n# Sends a PING and wait for a PONG from the server, up to the given timeout.\n# This gives guarantee that the server has processed above message.\nawait nc.flush(timeout=1)\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'fiber'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n nc.subscribe(\"updates\") do |msg|\n puts msg\n end\n\n nc.publish(\"updates\", \"All is Well\")\n\n nc.flush do\n # Sends a PING and wait for a PONG from the server, up to the given timeout.\n # This gives guarantee that the server has processed above message at this point.\n end\nend\n\n\n\t\n\t\n\t\n\tlet nc = await connect({\n url: \"nats://demo.nats.io:4222\"\n});\n\n// you can use flush to trigger a function in your\n// application once the round-trip to the server finishes\nlet start = Date.now();\nnc.flush(() => {\n t.log('round trip completed in', Date.now() - start, 'ms');\n});\n\nnc.publish('foo');\n\n// another way, simply wait for the promise to resolve\nawait nc.flush();\n\nnc.close();\n\n\t\n\t\n\nFlush and Ping/Pong\nMany of the client libraries use the PING/PONG interaction built into the NATS protocol to insure that flush pushed all of the cached messages to the server. When an application calls flush most libraries will put a PING on the outgoing queue of messages, and wait for the server to send PONG before saying that the flush was successful.\n"},"developer/sending/structure.html":{"url":"developer/sending/structure.html","title":"Sending Structured Data","keywords":"","body":"Sending Structured Data\nSome client libraries provide helpers to send structured data while others depend on the application to perform any encoding and decoding and just take byte arrays for sending. The following example shows how to send JSON but this could easily be altered to send a protocol buffer, YAML or some other format. JSON is a text format so we also have to encode the string in most languages to bytes. We are using UTF-8, the JSON standard encoding.\nTake a simple stock ticker that sends the symbol and price of each stock:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\nec, err := nats.NewEncodedConn(nc, nats.JSON_ENCODER)\nif err != nil {\n\tnc.Close()\n\tlog.Fatal(err)\n}\ndefer ec.Close()\n\n// Define the object\ntype stock struct {\n\tSymbol string\n\tPrice int\n}\n\n// Publish the message\nif err := ec.Publish(\"updates\", &stock{Symbol: \"GOOG\", Price: 1200}); err != nil {\n\tlog.Fatal(err)\n}\n// Make sure the message goes through before we close\nec.Flush()\n\n\t\n\t\n\t\n\tclass StockForJsonPub {\n public String symbol;\n public float price;\n}\n\npublic class PublishJSON {\n public static void main(String[] args) {\n try {\n Connection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\n // Create the data object\n StockForJsonPub stk = new StockForJsonPub();\n stk.symbol=\"GOOG\";\n stk.price=1200;\n\n // use Gson to encode the object to JSON\n GsonBuilder builder = new GsonBuilder();\n Gson gson = builder.create();\n String json = gson.toJson(stk);\n\n // Publish the message\n nc.publish(\"updates\", json.getBytes(StandardCharsets.UTF_8));\n\n // Make sure the message goes through before we close\n nc.flush(Duration.ZERO);\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\tlet nc = NATS.connect({url: \"nats://demo.nats.io:4222\", json: true});\nnc.publish('updates', {ticker: 'GOOG', price: 1200});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nawait nc.publish(\"updates\", json.dumps({\"symbol\": \"GOOG\", \"price\": 1200 }).encode())\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\nrequire 'json'\n\nNATS.start(servers:[\"nats://127.0.0.1:4222\"]) do |nc|\n nc.publish(\"updates\", {\"symbol\": \"GOOG\", \"price\": 1200}.to_json)\nend\n\n\t\n\t\n\t\n\tlet nc = await connect({\n url: \"nats://demo.nats.io:4222\",\n payload: Payload.JSON\n});\n\nnc.publish('updates', {ticker: 'GOOG', price: 1200});\n\n\t\n\t\n"},"developer/events/intro.html":{"url":"developer/events/intro.html","title":"Monitoring the Connection","keywords":"","body":"Monitoring the Connection\nManaging the interaction with the server is primarily the job of the client library but most of the libraries also provide some insight into what is happening under the covers.\nFor example, the client library may provide a mechanism to get the connection's current status:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\ngetStatusTxt := func(nc *nats.Conn) string {\n\tswitch nc.Status() {\n\tcase nats.CONNECTED:\n\t\treturn \"Connected\"\n\tcase nats.CLOSED:\n\t\treturn \"Closed\"\n\tdefault:\n\t\treturn \"Other\"\n\t}\n}\nlog.Printf(\"The connection is %v\\n\", getStatusTxt(nc))\n\nnc.Close()\n\nlog.Printf(\"The connection is %v\\n\", getStatusTxt(nc))\n\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\nSystem.out.println(\"The Connection is: \" + nc.getStatus());\n\nnc.close();\n\nSystem.out.println(\"The Connection is: \" + nc.getStatus());\n\n\t\n\t\n\t\n\tlet nc = NATS.connect(\"nats://demo.nats.io:4222\");\n\n// on node you *must* register an error listener. If not registered\n// the library emits an 'error' event, the node process will exit.\nnc.on('error', (err) => {\n t.log('client got an error:', err);\n});\n\nif(nc.closed) {\n t.log('client is closed');\n} else {\n t.log('client is not closed');\n}\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n )\n\n# Do something with the connection.\n\nprint(\"The connection is connected?\", nc.is_connected)\n\nwhile True:\n if nc.is_reconnecting:\n print(\"Reconnecting to NATS...\")\n break\n await asyncio.sleep(1)\n\nawait nc.close()\n\nprint(\"The connection is closed?\", nc.is_closed)\n\n\n\t\n\t\n\t\n\tNATS.start(max_reconnect_attempts: 2) do |nc|\n puts \"Connect is connected?: #{nc.connected?}\"\n\n timer = EM.add_periodic_timer(1) do\n if nc.closing?\n puts \"Connection closed...\"\n EM.cancel_timer(timer)\n NATS.stop\n end\n\n if nc.reconnecting?\n puts \"Reconnecting to NATS...\"\n next\n end\n end\nend\n\n\n\t\n\t\n\t\n\tif(nc.isClosed()) {\n t.log('the client is closed');\n} else {\n t.log('the client is running');\n}\n\n\t\n\t\n"},"developer/events/events.html":{"url":"developer/events/events.html","title":"Listen for Connection Events","keywords":"","body":"Listen for Connection Events\nWhile the connection status is interesting, it is perhaps more interesting to know when the status changes. Most, if not all, of the NATS client libraries provide a way to listen for events related to the connection and its status.\nThe actual API for these listeners is language dependent, but the following examples show a few of the more common use cases. See the API documentation for the client library you are using for more specific instructions.\nConnection events may include the connection being closed, disconnected or reconnected. Reconnecting involves a disconnect and connect, but depending on the library implementation may also include multiple disconnects as the client tries to find a server, or the server is rebooted.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// There is not a single listener for connection events in the NATS Go Client.\n// Instead, you can set individual event handlers using:\n\nDisconnectHandler(cb ConnHandler)\nReconnectHandler(cb ConnHandler)\nClosedHandler(cb ConnHandler)\nDiscoveredServersHandler(cb ConnHandler)\nErrorHandler(cb ErrHandler)\n\n\t\n\t\n\t\n\tclass MyConnectionListener implements ConnectionListener {\n public void connectionEvent(Connection natsConnection, Events event) {\n System.out.println(\"Connection event - \"+event);\n }\n}\n\npublic class SetConnectionListener {\n public static void main(String[] args) {\n\n try {\n Options options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n connectionListener(new MyConnectionListener()). // Set the listener\n build();\n Connection nc = Nats.connect(options);\n\n // Do something with the connection\n\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\tlet nc = NATS.connect(\"nats://demo.nats.io:4222\");\n\nnc.on('error', (err) => {\n t.log('error', err);\n});\n\nnc.on('connect', () => {\n t.log('client connected');\n});\n\nnc.on('disconnect', () => {\n t.log('client disconnected');\n});\n\nnc.on('reconnecting', () => {\n t.log('client reconnecting');\n});\n\nnc.on('reconnect', () => {\n t.log('client reconnected');\n});\n\nnc.on('close', () => {\n t.log('client closed');\n});\n\nnc.on('permission_error', (err) => {\n t.log('permission_error', err);\n});\n\n\t\n\t\n\t\n\t# Asyncio NATS client can be defined a number of event callbacks\nasync def disconnected_cb():\n print(\"Got disconnected!\")\n\nasync def reconnected_cb():\n # See who we are connected to on reconnect.\n print(\"Got reconnected to {url}\".format(url=nc.connected_url.netloc))\n\nasync def error_cb(e):\n print(\"There was an error: {}\".format(e))\n\nasync def closed_cb():\n print(\"Connection is closed\")\n\n# Setup callbacks to be notified on disconnects and reconnects\noptions[\"disconnected_cb\"] = disconnected_cb\noptions[\"reconnected_cb\"] = reconnected_cb\n\n# Setup callbacks to be notified when there is an error\n# or connection is closed.\noptions[\"error_cb\"] = error_cb\noptions[\"closed_cb\"] = closed_cb\n\nawait nc.connect(**options)\n\n\t\n\t\n\t\n\t# There is not a single listener for connection events in the Ruby NATS Client.\n# Instead, you can set individual event handlers using:\n\nNATS.on_disconnect do\nend\n\nNATS.on_reconnect do\nend\n\nNATS.on_close do\nend\n\nNATS.on_error do\nend\n\n\t\n\t\n\t\n\t// connect will happen once - the first connect\nnc.on('connect', (nc) => {\n // nc is the connection that connected\n t.log('client connected');\n});\n\nnc.on('disconnect', (url) => {\n // nc is the connection that reconnected\n t.log('disconnected from', url);\n});\n\nnc.on('reconnecting', (url) => {\n t.log('reconnecting to', url);\n});\n\nnc.on('reconnect', (nc, url) => {\n // nc is the connection that reconnected\n t.log('reconnected to', url);\n});\n\n\t\n\t\n\nListen for New Servers\nWhen working with a cluster, servers may be added or changed. Some of the clients allow you to listen for this notification:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Be notified if a new server joins the cluster.\n// Print all the known servers and the only the ones that were discovered.\nnc, err := nats.Connect(\"demo.nats.io\",\n\tnats.DiscoveredServersHandler(func(nc *nats.Conn) {\n\t\tlog.Printf(\"Known servers: %v\\n\", nc.Servers())\n\t\tlog.Printf(\"Discovered servers: %v\\n\", nc.DiscoveredServers())\n\t}))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tclass ServersAddedListener implements ConnectionListener {\n public void connectionEvent(Connection nc, Events event) {\n if (event == Events.DISCOVERED_SERVERS) {\n for (String server : nc.getServers()) {\n System.out.println(\"Known server: \"+server);\n }\n }\n }\n}\n\npublic class ListenForNewServers {\n public static void main(String[] args) {\n\n try {\n Options options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n connectionListener(new ServersAddedListener()). // Set the listener\n build();\n Connection nc = Nats.connect(options);\n\n // Do something with the connection\n\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\tlet nc = NATS.connect(\"nats://demo.nats.io:4222\");\nnc.on('serversDiscovered', (urls) => {\n t.log('serversDiscovered', urls);\n});\n\n\t\n\t\n\t\n\t# Asyncio NATS client does not support discovered servers handler right now\n\n\t\n\t\n\t\n\t# The Ruby NATS client does not support discovered servers handler right now\n\n\t\n\t\n\t\n\tnc.on('serversChanged', (ce) => {\n t.log('servers changed\\n', 'added: ',ce.added, 'removed:', ce.removed);\n});\n\n\t\n\t\n\nListen for Errors\nThe client library may separate server-to-client errors from events. Many server events are not handled by application code and result in the connection being closed. Listening for the errors can be very useful for debugging problems.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set the callback that will be invoked when an asynchronous error occurs.\nnc, err := nats.Connect(\"demo.nats.io\",\n\tnats.ErrorHandler(func(nc *nats.Conn, sub *nats.Subscription, err error) {\n\t\tlog.Printf(\"Error: %v\", err)\n\t}))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tclass MyErrorListener implements ErrorListener {\n public void errorOccurred(Connection conn, String error)\n {\n System.out.println(\"The server notificed the client with: \"+error);\n }\n\n public void exceptionOccurred(Connection conn, Exception exp) {\n System.out.println(\"The connection handled an exception: \"+exp.getLocalizedMessage());\n }\n\n public void slowConsumerDetected(Connection conn, Consumer consumer) {\n System.out.println(\"A slow consumer was detected.\");\n }\n}\n\npublic class SetErrorListener {\n public static void main(String[] args) {\n\n try {\n Options options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n errorListener(new MyErrorListener()). // Set the listener\n build();\n Connection nc = Nats.connect(options);\n\n // Do something with the connection\n\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\tlet nc = NATS.connect(\"nats://demo.nats.io:4222\");\n\n// on node you *must* register an error listener. If not registered\n// the library emits an 'error' event, the node process will exit.\nnc.on('error', (err) => {\n t.log('client got an error:', err);\n});\n\n\t\n\t\n\t\n\tnc = NATS()\n\nasync def error_cb(e):\n print(\"Error: \", e)\n\nawait nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n reconnect_time_wait=10,\n error_cb=error_cb,\n )\n\n# Do something with the connection.\n\n\n\t\n\t\n\t\n\trequire 'nats/client'\n\nNATS.start(servers:[\"nats://demo.nats.io:4222\"]) do |nc|\n nc.on_error do |e|\n puts \"Error: #{e}\"\n end\n\n nc.close\nend\n\n\t\n\t\n\t\n\t// on node you *must* register an error listener. If not registered\n// the library emits an 'error' event, the node process will exit.\nnc.on('error', (err) => {\n t.log('client got an out of band error:', err);\n});\n\n\t\n\t\n"},"developer/events/slow.html":{"url":"developer/events/slow.html","title":"Slow Consumers","keywords":"","body":"Slow Consumers\nNATS is designed to move messages through the server quickly. As a result, NATS depends on the applications to consider and respond to changing message rates. The server will do a bit of impedance matching, but if a client is too slow the server will eventually cut them off. These cut off connections are called slow consumers.\nOne way some of the libraries deal with bursty message traffic is to cache incoming messages for a subscription. So if an application can handle 10 messages per second and sometimes receives 20 messages per second, the library may hold the extra 10 to give the application time to catch up. To the server, the application will appear to be handling the messages and consider the connection healthy. It is up to the client library to decide what to do when the cache is too big, but most client libraries will drop incoming messages.\nReceiving and dropping messages from the server keeps the connection to the server healthy, but creates an application requirement. There are several common patterns:\n\nUse request/reply to throttle the sender and prevent overloading the subscriber\nUse a queue with multiple subscribers splitting the work\nPersist messages with something like NATS streaming\n\nLibraries that cache incoming messages may provide two controls on the incoming queue, or pending messages. These are useful if the problem is bursty publishers and not a continuous performance mismatch. Disabling these limits can be dangerous in production and although setting these limits to 0 may help find problems, it is also a dangerous proposition in production.\n\nCheck your libraries documentation for the default settings, and support for disabling these limits.\n\nThe incoming cache is usually per subscriber, but again, check the specific documentation for your client library.\nLimiting Incoming/Pending Messages by Count and Bytes\nThe first way that the incoming queue can be limited is by message count. The second way to limit the incoming queue is by total size. For example, to limit the incoming cache to 1,000 messages or 5mb whichever comes first:\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\tnc, err := nats.Connect(\"demo.nats.io\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Subscribe\nsub1, err := nc.Subscribe(\"updates\", func(m *nats.Msg) {})\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Set limits of 1000 messages or 5MB, whichever comes first\nsub1.SetPendingLimits(1000, 5*1024*1024)\n\n// Subscribe\nsub2, err := nc.Subscribe(\"updates\", func(m *nats.Msg) {})\nif err != nil {\n\tlog.Fatal(err)\n}\n\n// Set no limits for this subscription\nsub2.SetPendingLimits(-1, -1)\n\n// Close the connection\nnc.Close()\n\n\t\n\t\n\t\n\tConnection nc = Nats.connect(\"nats://demo.nats.io:4222\");\n\nDispatcher d = nc.createDispatcher((msg) -> {\n // do something\n});\n\nd.subscribe(\"updates\");\n\nd.setPendingLimits(1_000, 5 * 1024 * 1024); // Set limits on a dispatcher\n\n// Subscribe\nSubscription sub = nc.subscribe(\"updates\");\n\nsub.setPendingLimits(1_000, 5 * 1024 * 1024); // Set limits on a subscription\n\n// Do something\n\n// Close the connection\nnc.close();\n\n\t\n\t\n\t\n\t// slow pending limits are not configurable on node-nats\n\n\t\n\t\n\t\n\tnc = NATS()\n\nawait nc.connect(servers=[\"nats://demo.nats.io:4222\"])\n\nfuture = asyncio.Future()\n\nasync def cb(msg):\n nonlocal future\n future.set_result(msg)\n\n# Set limits of 1000 messages or 5MB\nawait nc.subscribe(\"updates\", cb=cb, pending_bytes_limit=5*1024*1024, pending_msgs_limit=1000)\n\n\n\t\n\t\n\t\n\t# The Ruby NATS client currently does not have option to customize slow consumer limits per sub.\n\n\t\n\t\n\t\n\t// slow pending limits are not configurable on ts-nats\n\n\t\n\t\n\nDetect a Slow Consumer and Check for Dropped Messages\nWhen a slow consumer is detected and messages are about to be dropped, the library may notify the application. This process may be similar to other errors or may involve a custom callback.\nSome libraries, like Java, will not send this notification on every dropped message because that could be noisy. Rather the notification may be sent once per time the subscriber gets behind. Libraries may also provide a way to get a count of dropped messages so that applications can at least detect a problem is occurring.\n\n \t\n\t\n\t\n\t\n\tGo\n\t\n\t\n\t\n\t\n\tJava\n\t\n\t\n\t\n\t\n\tJavaScript\n\t\n\t\n\t\n\t\n\tPython\n\t\n\t\n\t\n\t\n\tRuby\n\t\n\t\n\t\n\t\n\tTypeScript\n\t\n\n \t\n\t\n\t// Set the callback that will be invoked when an asynchronous error occurs.\nnc, err := nats.Connect(\"demo.nats.io\",\n\tnats.ErrorHandler(func(nc *nats.Conn, sub *nats.Subscription, err error) {\n\t\tif err == nats.ErrSlowConsumer {\n\t\t\tdropped, _ := sub.Dropped()\n\t\t\tlog.Printf(\"Slow consumer on subject %s dropped %d messages\\n\",\n\t\t\t\tsub.Subject, dropped)\n\t\t}\n\t}))\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer nc.Close()\n\n// Do something with the connection\n\n\n\t\n\t\n\t\n\tclass SlowConsumerReporter implements ErrorListener {\n public void errorOccurred(Connection conn, String error)\n {\n }\n\n public void exceptionOccurred(Connection conn, Exception exp) {\n }\n\n // Detect slow consumers\n public void slowConsumerDetected(Connection conn, Consumer consumer) {\n // Get the dropped count\n System.out.println(\"A slow consumer dropped messages: \"+ consumer.getDroppedCount());\n }\n}\n\npublic class SlowConsumerListener {\n public static void main(String[] args) {\n\n try {\n Options options = new Options.Builder().\n server(\"nats://demo.nats.io:4222\").\n errorListener(new SlowConsumerReporter()). // Set the listener\n build();\n Connection nc = Nats.connect(options);\n\n // Do something with the connection\n\n nc.close();\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n}\n\n\t\n\t\n\t\n\t// slow consumer detection is not configurable on node-nats\n\n\t\n\t\n\t\n\t\n nc = NATS()\n\n async def error_cb(e):\n if type(e) is nats.aio.errors.ErrSlowConsumer:\n print(\"Slow consumer error, unsubscribing from handling further messages...\")\n await nc.unsubscribe(e.sid)\n\n await nc.connect(\n servers=[\"nats://demo.nats.io:4222\"],\n error_cb=error_cb,\n )\n\n msgs = []\n future = asyncio.Future()\n async def cb(msg):\n nonlocal msgs\n nonlocal future\n print(msg)\n msgs.append(msg)\n\n if len(msgs) == 3:\n # Head of line blocking on other messages caused\n\t # by single message proccesing taking long...\n await asyncio.sleep(1)\n\n await nc.subscribe(\"updates\", cb=cb, pending_msgs_limit=5)\n\n for i in range(0, 10):\n await nc.publish(\"updates\", \"msg #{}\".format(i).encode())\n await asyncio.sleep(0)\n\n try:\n await asyncio.wait_for(future, 1)\n except asyncio.TimeoutError:\n pass\n\n for msg in msgs:\n print(\"[Received]\", msg)\n\n await nc.close()\n\n\n\t\n\t\n\t\n\t# The Ruby NATS client currently does not have option to customize slow consumer limits per sub.\n\n\t\n\t\n\t\n\t// slow consumer detection is not configurable on ts-nats\n\n\t\n\t\n"},"developer/tutorials/intro.html":{"url":"developer/tutorials/intro.html","title":"Tutorials","keywords":"","body":"Tutorials\n"},"developer/tutorials/pubsub.html":{"url":"developer/tutorials/pubsub.html","title":"Explore NATS Pub/Sub","keywords":"","body":"Explore NATS Pub/Sub\nNATS is a publish subscribe messaging system. Subscribers listening on a subject name receive messages on that subject. If the subscriber is not actively listening on the subject, the message is not received. Subscribers can use the wildcard subjects * to match a single token to match the tail of a subject.\n\ndigraph nats_pub_sub {\n graph [splines=ortho, nodesep=1];\n\n sub1 [shape=\"box\", label=\"SUB\\ncom.msg.one\"];\n pub1 [shape=\"box\", label=\"PUB\\ncom.msg.one\"];\n non_active [shape=\"box\", label=\"Non-Active\\nSubscriber\"];\n\n {\n rank=same\n pub1 sub1 non_active\n }\n\n gnatsd [shape=\"box\", label=\"NATS\", width=8];\n\n sub2 [shape=\"box\", label=\"SUB\\ncom.msg.one\"];\n sub3 [shape=\"box\", label=\"SUB\\ncom.msg.two\"];\n sub4 [shape=\"box\", label=\"SUB\\ncom.msg.*\"];\n\n {\n rank=same\n sub2 sub3 sub4\n }\n\n pub1 -> gnatsd [penwidth=2];\n gnatsd -> sub1 [penwidth=2];\n gnatsd -> non_active [style=dashed color=red arrowhead=\"none\"];\n\n gnatsd -> sub2 [penwidth=2];\n gnatsd -> sub3 [style=dashed color=red arrowhead=\"none\"];\n gnatsd -> sub4 [penwidth=2];\n}\n\n\nPrerequisites\nGo and the NATS server should be installed.\n1. Start the NATS server\n% nats-server\n\nWhen the server starts successfully, you will see the following messages:\n[1] 2015/08/12 15:18:22.301550 [INF] Starting gnatsd version 0.6.4\n[1] 2015/08/12 15:18:22.301762 [INF] Listening for client connections on 0.0.0.0:4222\n[1] 2015/08/12 15:18:22.301769 [INF] gnatsd is ready\n\nThe NATS server listens for client connections on TCP Port 4222.\n2. Start a shell or command prompt session\nYou will use this session to run an example NATS client subscriber program.\n3. CD to the Go client examples directory\n% cd $GOPATH/src/github.com/nats-io/nats/examples\n\n4. Run the client subscriber program\n% go run nats-sub.go \n\nWhere is a subject to listen on. A valid subject is a string that is unique in the system.\nFor example:\n% go run nats-sub.go msg.test\n\nYou should see the message: Listening on [msg.test]\n5. Start another shell or command prompt session\nYou will use this session to run a NATS publisher client.\n6. CD to the examples directory\n% cd $GOPATH/src/github.com/nats-io/nats/examples\n\n7. Publish a NATS message\n% go run nats-pub.go \n\nWhere is the subject name and is the text to publish.\nFor example:\n% go run nats-pub.go msg.test hello\n\nor\n% go run nats-pub.go msg.test \"NATS MESSAGE\"\n\n8. Verify message publication and receipt\nYou should see that the publisher sends the message: Published [msg.test] : 'NATS MESSAGE'\nAnd that the subscriber receives the message: [#1] Received on [msg.test]: 'NATS MESSAGE'\nNote that if the receiver does not get the message, check that you are using the same subject name for the publisher and the subscriber.\n9. Publish another message\n% go run nats-pub.go msg.test \"NATS MESSAGE 2\"\n\nYou should see that the subscriber receive message 2. Note that the message count is incremented each time your subscribing client receives a message on that subject:\n10. Start another shell or command prompt session\nYou will use this session to run a second NATS subscriber.\n11. CD to the examples directory\n% cd $GOPATH/src/github.com/nats-io/nats/examples\n\n12. Subscribe to the message\n% go run nats-sub.go msg.test\n\n13. Publish another message using the publisher client\n% go run nats-pub.go msg.test \"NATS MESSAGE 3\"\n\nVerify that both subscribing clients receive the message.\n14. Start another shell or command prompt session\nYou will use this session to run a third NATS subscriber.\n15. CD to the examples directory\n% cd $GOPATH/src/github.com/nats-io/nats/examples\n\n16. Subscribe to a different message\n% go run nats-sub.go msg.test.new\n\nAll the but last subscriber receives the message. Why? Because that subscriber is not listening on the message subject used by the publisher.\n17. Update the last subscriber to use a wildcard\nNATS supports the use of wildcard characters for message subscribers. (You cannot publish a message using a wildcard subject.)\nChange the last subscriber the listen on msg.* and run it:\n% go run nats-sub.go msg.*\n\n18. Publish another message\nThis time, all three subscribing clients should receive the message.\n"},"developer/tutorials/reqreply.html":{"url":"developer/tutorials/reqreply.html","title":"Explore NATS Request/Reply","keywords":"","body":"Explore NATS Request/Reply\nNATS supports request/reply messaging. In this tutorial you explore how to exchange point-to-point messages using NATS.\nPrerequisites\nGo and the NATS server should be installed.\n1. Start the NATS server\n% gnatsd\n\n2. Start two terminal sessions\nYou will use these sessions to run the NATS request and reply clients.\n3. Change to the examples directory\n% cd $GOPATH/src/github.com/nats-io/nats/examples\n\n4. In one terminal, run the reply client listener\n% go run nats-rply.go foo \"this is my response\"\n\nYou should see the message Receiver is listening, and that the NATS receiver client is listening on the \"help.please\" subject. The reply client acts as a receiver, listening for message requests. In NATS, the receiver is a subscriber.\n5. In the other terminal, run the request client\n% go run nats-req.go foo \"request payload\"\n\nThe NATS requestor client makes a request by sending the message \"some message\" on the โ€œhelp.pleaseโ€ subject.\nThe NATS receiver client receives the message, formulates the reply (\"OK, I CAN HELP!!!), and sends it to the inbox of the requester.\n"},"developer/tutorials/queues.html":{"url":"developer/tutorials/queues.html","title":"Explore NATS Queueing","keywords":"","body":"Explore NATS Queueing\nNATS supports a form of load balancing using queue groups. Subscribers register a queue group name. A single subscriber in the group is randomly selected to receive the message.\nPrerequisites\nGo and the NATS server should be installed.\n1. Start the NATS server\nnats-server\n\n2. Clone the repositories for each client examples\ngo get github.com/nats-io/go-nats\ngit clone https://github.com/nats-io/node-nats.git\ngit clone https://github.com/nats-io/ruby-nats.git\n\n3. Run the Go client subscriber with queue group name\ncd $GOPATH/src/github.com/nats-io/go-nats/examples\ngo run nats-qsub.go foo my-queue\n\n4. Install and run the Node client subscriber with queue group name\nnpm install nats\ncd node-nats/examples\nnode node-sub foo my-queue\n\n5. Install and run the Ruby client subscriber with queue group name\ngem install nats\nnats-queue foo my-queue &\n\n*6. Run another Go client subscriber without* the queue group.\ncd $GOPATH/src/github.com/nats-io/go-nats/examples\ngo run nats-sub.go foo\n\n7. Publish a NATS message using the Go client\ncd $GOPATH/src/github.com/nats-io/go-nats/examples\ngo run nats-pub.go foo \"Hello NATS!\"\n\n8. Verify message publication and receipt\nYou should see that the publisher sends the message: Published [foo] : 'Hello NATS!'\nYou should see that only one of the my-queue group subscribers receives the message. In addition, the Go client subscriber not in the my-queue group should also receive the message.\n9. Publish another message\ngo run nats-pub.go foo \"Hello NATS Again!\"\n\nYou should see that a different queue group subscriber receives the message this time, chosen at random among the 3 queue group members.\n"},"developer/tutorials/custom_dialer.html":{"url":"developer/tutorials/custom_dialer.html","title":"Advanced Connect and Custom Dialer in Go","keywords":"","body":"Advanced Connect and Custom Dialer in Go\nThe Go NATS client features a CustomDialer option which allows you to customize\nthe connection logic against the NATS server without having to modify the internals\nof the client. For example, let's say that you want to make the client use the context\npackage to use DialContext and be able to cancel connecting to NATS altogether with a deadline,\nyou could then do define a Dialer implementation as follows:\npackage main\n\nimport (\n \"context\"\n \"log\"\n \"net\"\n \"time\"\n\n \"github.com/nats-io/go-nats\"\n)\n\ntype customDialer struct {\n ctx context.Context\n nc *nats.Conn\n connectTimeout time.Duration\n connectTimeWait time.Duration\n}\n\nfunc (cd *customDialer) Dial(network, address string) (net.Conn, error) {\n ctx, cancel := context.WithTimeout(cd.ctx, cd.connectTimeout)\n defer cancel()\n\n for {\n log.Println(\"Attempting to connect to\", address)\n if ctx.Err() != nil {\n return nil, ctx.Err()\n }\n\n select {\n case \nWith the dialer implementation above, the NATS client will retry a number of times to connect\nto the NATS server until the context is no longer valid:\nfunc main() {\n // Parent context cancels connecting/reconnecting altogether.\n ctx, cancel := context.WithCancel(context.Background())\n defer cancel()\n\n var err error\n var nc *nats.Conn\n cd := &customDialer{\n ctx: ctx,\n connectTimeout: 10 * time.Second,\n connectTimeWait: 1 * time.Second,\n }\n opts := []nats.Option{\n nats.SetCustomDialer(cd),\n nats.ReconnectWait(2 * time.Second),\n nats.ReconnectHandler(func(c *nats.Conn) {\n log.Println(\"Reconnected to\", c.ConnectedUrl())\n }),\n nats.DisconnectHandler(func(c *nats.Conn) {\n log.Println(\"Disconnected from NATS\")\n }),\n nats.ClosedHandler(func(c *nats.Conn) {\n log.Println(\"NATS connection is closed.\")\n }),\n nats.NoReconnect(),\n }\n go func() {\n nc, err = nats.Connect(\"127.0.0.1:4222\", opts...)\n }()\n\nWaitForEstablishedConnection:\n for {\n if err != nil {\n log.Fatal(err)\n }\n\n // Wait for context to be canceled either by timeout\n // or because of establishing a connection...\n select {\n case \n"},"developer/streaming/":{"url":"developer/streaming/","title":"Introduction","keywords":"","body":"NATS Streaming\nWhere NATS provides at most once quality of service, streaming adds at least once. Streaming is implemented as a request-reply service on top of NATS. Streaming messages are encoded as protocol buffers, the streaming clients use NATS to talk to the streaming server. The streaming server organizes messages in channels and stores them in files and databases. ACKs are used to insure delivery in both directions.\n\nSometimes the maintainers will refer to NATS as \"nats core\" and streaming as \"stan\" or \"streaming.\"\n\nMessages to the streaming service are opaque byte arrays, just as they are with NATS. However, the streaming server protocol uses protocol buffers to wrap these byte arrays. So if you listen to the NATS traffic the messages will appear as protocol buffers, while the actual data sent and received will simply be byte arrays.\nNATS streaming uses the concept of a channel to represent an ordered collection of messages. Clients send to and receive from channels instead of subjects. The subjects used by the streaming libraries and server are managed internally. Channels do not currently support wildcard. Channels arenโ€™t raw subjects. Streaming isnโ€™t raw NATS. The streaming libraries hide some of the differences.\nThink of channels as a ring buffer. Messages are added until the configured limit is reached. Old messages are removed to make room for new ones. Old messages can expire, based on configuration. Subscriptions donโ€™t affect channel content. Subscriptions are like a cursor on the ring buffer.\n\nPositions in the channel are specified in multiple ways:\n\nSequence number - counting from 1\nTime\nTime delta (converted to time on client)\n\nNew subscriptions can also specify last received to indicate they only want new messages. Sequence numbers are persistent, when message #1 goes away the oldest message is message #2. Trying to go to a position before the oldest message will be moved to the oldest message.\n\nSubscription Types\nNATS Streaming supports several types of subscriptions:\n\nRegular\nDurable\nQueue\nDurable/Queue\n\nRegular subscriptions pick the location of their channel position on creation and it is stored while the subscriber is active. Durable subscriptions store their position in the streaming server. Queue subscriptions share a channel position. Durable/Queue subscriptions share a channel position stored in the server. All subscriptions can be configured with a starting position, but only new durable subscriptions and new regular subscriptions respect the request.\nAll subscriptions define their position on creation. Regular subscriptions lose their position if the application crashes, the app disconnects or they unsubscribe. Durable subscriptions maintain their position through disconnect, subscriber close, but not through unsubscribe. The position on reconnect comes from the server not the options in both cases. Queue subscriptions share a position. Regular queue subscriptions lose their position on the last disconnect/unsubscribe. Durable queue subscriptions maintain their position through disconnect, but not through the last unsubscribe. Positions provided in options are ignored after the position is set.\nAcknowledgements\nIn order to implement at least once delivery NATS streaming uses ACK messages for publishers and subscribers. Each message sent from the streaming server to the client must be acknowledged or it will be re-delivered. Developers must switch their mind set. The same message can arrive more than once. Messages should be idempotent. The client libraries can help with ACKs. Subscriptions can use manual or automatic ACKs. Manual ACKs are safer, since the program controls when they happen. An ACK wait setting is used to define the timeout before an ACK is considered missing.\n\nAck wait = 10s means that the server wonโ€™t redeliver for at least 10s\n\nUsing ACKs for each message sent can be a performance hit - round trip per message. NATS streaming allows subscriptions to set a max in flight value. Max in flight determines how many unacknowledged messages can be sent to the client. Ack Wait is used to decide when the ACK for a message has failed and it needs to be redelivered. New and redelivered messages are sent upon availability, in order.\nMessages are sent in order, when they are available:\n\nMax inflight = 2\nSend msg 1 and msg 2\nACK 2\nMessage 3 arrives at the server\nSend message 3 (since it is available)\nWhen Ack wait expires, msg 1 is available\nSend msg 1 (1 and 3 are in flight)\n\nThe streaming server sends available messages in order, but 1 isnโ€™t available until its Ack wait expires. If max in flight = 1 then only 1 message is on the wire at a time, it will be re-sent until it is acknowledged. Re-delivered messages will not come out of order in this situation.\nSetting max in flight to a number greater than 1 requires some thought and foresight to deal with redelivery scenarios.\nMax in flight is a per-subscription setting. In the case of queue subscribers, each client can set the value. Normally, each client will use the same value but this is not a requirement.\nNATS streaming uses acknowledgements on the sending side as well as the subscribing side. The streaming server acknowledges messages it receives and has persisted. A maximum in flight setting is used for publishers. No more than max in flight can be on their way to the server at one time. The library may provide various mechanisms to handle publisher ACKs. The application must manage redelivery to the server.\n"},"developer/streaming/connecting.html":{"url":"developer/streaming/connecting.html","title":"Connecting to NATS Streaming","keywords":"","body":"Connecting to NATS Streaming\nNATS Streaming is a service on top of NATS. To connect to the service you first connect to NATS and then use the client library to communicate with the server over your NATS connection. Most of the libraries provide a convenience mechanism for connecting in a single step. These convenience methods will take some NATS options, like the server, and perform the NATS connection first, then then run the protocol to connect to the streaming server.\nConnecting to a streaming server requires a cluster id, defined by the server configuration, and a client ID defined by the client.\nsc, err := stan.Connect(clusterID, clientID, stan.NatsURL(โ€œnats://localhost:4222โ€))\n\nSometimes you may want to provide NATS settings that aren't available in the streaming libraries connect method. Or, you may want to reuse a NATS connection instead of creating a new one. In this case the libraries generally provide a way to connect to streaming with an existing NATS connection:\nsc, err := stan.Connect(clusterID, clientID, stan.NatsConn(nc))\n\n"},"developer/streaming/publishing.html":{"url":"developer/streaming/publishing.html","title":"Publishing to a Channel","keywords":"","body":"Publishing to a Channel\nThe streaming client library can provide a method for publishing synchronously. .These publish methods block until the ACK is returned by the server. An error or exception is used to indicate a timeout or other error.\nerr := sc.Publish(\"foo\", []byte(\"Hello World\"))\n\nStreaming libraries can also provide a way to publish asynchronously. An ACK callback of some kind is required. The library will publish the message and notify the callback on ACK or timeout. The global id associated with the message being sent is returned from publish so that the application can identify it on callback.\nackHandler := func(ackedNuid string, err error){ ... }\n\nnuid, err := sc.PublishAsync(\"foo\", []byte(\"Hello World\"), ackHandler)\n\n"},"developer/streaming/receiving.html":{"url":"developer/streaming/receiving.html","title":"Receiving Messages from a Channel","keywords":"","body":"Receiving Messages from a Channel\nClients subscribe to channels by name. Wildcards are not supported. Receiving messages is similar to core NATS. Messages in streaming use protocol buffers and will have a bit more structure than NATS opaque messages. Client messages are still presented and accepted as raw/opaque binary data. The use of protocol buffers is transparent.\nSubscriptions come in several forms:\n\nRegular\nDurable\nQueue\nQueue/Durable\n\nSubscriptions set their starting position on creation using position or time. For example, in Go you can start at:\n\nThe last message received\n\nsub, err := sc.Subscribe(\"foo\",\n func(m *stan.Msg) {...},\n stan.StartWithLastReceived())\n\n\nThe beginning of the channel\n\nsub, err := sc.Subscribe(\"foo\",\n func(m *stan.Msg) {...},\n stan.DeliverAllAvailable())\n\n\nA specific message, indexing starts at 1\n\nsub, err := sc.Subscribe(\"foo\",\n func(m *stan.Msg) {...},\n stan.StartAtSequence(22))\n\n\nA specific time the message arrived in the channel\n\nvar startTime time.Time\n...\nsub, err := sc.Subscribe(\"foo\",\n func(m *stan.Msg) {...},\n stan.StartAtTime(startTime))\n\n"},"developer/streaming/durables.html":{"url":"developer/streaming/durables.html","title":"Durable Subscriptions","keywords":"","body":"Durable Subscriptions\nRegular subscriptions remember their position while the client is connected. If the client disconnects the position is lost. Durable subscriptions remember their position even if the client is disconnected. Durable subscriptions identify themselves with a name. Connect and disconnect wonโ€™t affect the durable subscriptions position in the channel. Unsubscribe will clear the durable subscription.\nsc.Subscribe(\"foo\", func(m *stan.Msg) {...}, stan.DurableName(\"my-durable\"))\n\n"},"developer/streaming/queues.html":{"url":"developer/streaming/queues.html","title":"Queue Subscriptions","keywords":"","body":"Queue Subscriptions\nQueue subscriptions are created like other subscriptions with the addition of a queue name. All subscriptions, across clients, share the queue based on this unique name. Other subscriptions can receive messages independently of the queue groups. Unsubscribe removes a client from a group, the last unsubscribe kills the group. Max in flight is per subscription.\nqsub1, _ := sc.QueueSubscribe(channelID,\n queueName, func(m *stan.Msg) {...})\n\nqsub2, _ := sc.QueueSubscribe(channelID,\n queueName, func(m *stan.Msg) {...})\n\n"},"developer/streaming/acks.html":{"url":"developer/streaming/acks.html","title":"Acknowledgements","keywords":"","body":"Acknowledgements\nSubscribers can use auto-ack or manual-ack. Auto-ack is the default for most clients and is sent by the library when the message callback returns. Manual ack provides more control. The subscription options provide flags to:\n\nSet manual acks to true\nSet the ack wait used by the server for messages to this subscription\n\nThe ack wait is the time the server will wait before resending a message.\nsub, err := sc.Subscribe(\"foo\",\n func(m *stan.Msg) {\n m.Ack()\n }, stan.SetManualAckMode(), stan.AckWait(aw))\n\nMax In Flight\nSubscribers can set max in flight to rate limit incoming messages. The server will send at most โ€œmax in flightโ€ messages before receiving an acknowledgement. Setting max in flight to 1 insures every message is processed in order.\nsc.Subscribe(\"foo\", func(m *stan.Msg) {...},\n stan.SetManualAckMode(),\n stan.MaxInflight(25))\n\n"},"nats_protocol/nats-protocol-demo.html":{"url":"nats_protocol/nats-protocol-demo.html","title":"Protocol Demo","keywords":"","body":"Protocol Demo\nThe virtues of the NATS protocol manifest quickly when you experience how easy it is to use NATS. Because the NATS protocol is text-based, you can use NATS across virtually any platform or language. In the following demo we use Telnet.\nOn the wire you can publish and subscribe using a simple set of protocol commands.\nInstructions\n1. Open a terminal session.\nYou'll use this terminal as the subscriber.\n2. Connect to NATS.\ntelnet demo.nats.io 4222\nExpected result:\n$ telnet demo.nats.io 4222\nTrying 107.170.221.32...\nConnected to demo.nats.io.\nEscape character is '^]'.\nINFO {\"server_id\":\"ad29ea9cbb16f2865c177bbd4db446ca\",\"version\":\"0.6.8\",\"go\":\"go1.5.1\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"max_payload\":1048576}\n3. Run the subscriber.\nSubscribe to the wildcard subject foo.* with subject ID of 90.\nsub foo.* 90\nSubscriber result: +OK indicating successful interest registration.\nsub foo.* 90\n+OK\n4. Open a second terminal window.\nYou'll use this terminal for the publisher.\n5. Connect to NATS.\ntelnet demo.nats.io 4222\nExpected result:\n$ telnet demo.nats.io 4222\nTrying 107.170.221.32...\nConnected to demo.nats.io.\nEscape character is '^]'.\nINFO {\"server_id\":\"ad29ea9cbb16f2865c177bbd4db446ca\",\"version\":\"0.6.8\",\"go\":\"go1.5.1\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"max_payload\":1048576}\n6. Publish a message.\nThe message includes the command (pub), subject (foo.bar), and length of the payload (5). Press enter and provide the payload (hello), then press enter again.\npub foo.bar 5\nhello\nPublisher result: +OK indicating message publication.\npub foo.bar 5\nhello\n+OK\nSubscriber result: MSG + subject name + subscription ID + message payload size + message payload hello.\nsub foo.* 90\n+OK\nMSG foo.bar 90 5\nhello\n7. Publish another message with reply subject.\npub foo.bar optional.reply.subject 5\nhello\n+OK\nSubscriber result: MSG indicating message receipt.\nMSG foo.bar 90 optional.reply.subject 5\nhello\n8. Unsubscribe from interest in the subject.\nYou can use the UNSUB command to unsubscribe from a message.\nRun the subscriber to unsubscribe:\nunsub 90\nSubscriber result: +OK indicating successful deregistration of interest.\nunsub 90\n+OK\n9. Reconnect to server and subscribe.\ntelnet demo.nats.io 4222\nsub foo.* 90\n10. Explore the ping/pong interval.\nIf you leave your telnet session open for a few minutes, you may notice that your clients receives ping requests from the server. If your client is not active, or does not respond to the server pings within the ping/pong interval, the server disconnects the client. The error message is -ERR 'Stale Connection'.\nYou can send a ping request to the serve and receive a PONG reply. For example:\n$ telnet demo.nats.io 4222\nTrying 107.170.221.32...\nConnected to demo.nats.io.\nEscape character is '^]'.\nINFO {\"server_id\":\"ad29ea9cbb16f2865c177bbd4db446ca\",\"version\":\"0.6.8\",\"go\":\"go1.5.1\",\"host\":\"0.0.0.0\",\"port\":4222,\"auth_required\":false,\"ssl_required\":false,\"max_payload\":1048576}\n\nping\nPONG\n"},"nats_protocol/nats-protocol.html":{"url":"nats_protocol/nats-protocol.html","title":"Client Protocol","keywords":"","body":"Client Protocol\nThe wire protocol used to communicate between the NATS server and clients is a simple, text-based publish/subscribe style protocol. Clients connect to and communicate with nats-server (the NATS server) through a regular TCP/IP socket using a small set of protocol operations that are terminated by a new line.\nUnlike traditional messaging systems that use a binary message format that require an API to consume, the text-based NATS protocol makes it easy to implement clients in a wide variety of programming and scripting languages. In fact, refer to the topic NATS Protocol Demo to play with the NATS protocol for yourself using telnet.\nThe NATS server implements a zero allocation byte parser that is fast and efficient.\nProtocol conventions\nControl line w/Optional Content: Each interaction between the client and server consists of a control, or protocol, line of text followed, optionally by message content. Most of the protocol messages don't require content, only PUB and MSG include payloads.\nField Delimiters: The fields of NATS protocol messages are delimited by whitespace characters '`' (space) or\\t` (tab). Multiple whitespace characters will be treated as a single field delimiter.\nNewlines: NATS uses CR followed by LF (CR+LF, \\r\\n, 0x0D0A) to terminate protocol messages. This newline sequence is also used to mark the end of the message payload in a PUB or MSG protocol message.\nSubject names: Subject names, including reply subject (INBOX) names, are case-sensitive and must be non-empty alphanumeric strings with no embedded whitespace, and optionally token-delimited using the dot character (.), e.g.:\nFOO, BAR, foo.bar, foo.BAR, FOO.BAR and FOO.BAR.BAZ are all valid subject names\nFOO. BAR, foo. .bar andfoo..bar are not valid subject names\nCharacter Encoding: Subject names should be ascii characters for maximum interoperability. Due to language constraints and performance, some clients may support UTF-8 subject names, as may the server. No guarantees of non-ASCII support are provided.\nWildcards: NATS supports the use of wildcards in subject subscriptions.\n\nThe asterisk character (*) matches a single token at any level of the subject.\nThe greater than symbol (>), also known as the full wildcard, matches one or more tokens at the tail of a subject, and must be the last token. The wildcarded subject foo.> will match foo.bar or foo.bar.baz.1, but not foo. \nWildcards must be a separate token (foo.*.baz or foo.> are syntactically valid; foo*.bar, f*o.b*r and foo> are not)\n\nFor example, the wildcard subscriptions foo.*.quux and foo.> both match foo.bar.quux, but only the latter matches foo.bar.baz. With the full wildcard,\nit is also possible to express interest in every subject that may exist in NATS: sub > 1, limited of course by authorization settings.\nProtocol messages\nThe following table briefly describes the NATS protocol messages. NATS protocol operation names are case insensitive, thus SUB foo 1\\r\\n and sub foo 1\\r\\n are equivalent.\nClick the name to see more detailed information, including syntax:\n\n\n\nOP Name\nSent By\nDescription\n\n\n\n\nINFO\nServer\nSent to client after initial TCP/IP connection\n\n\nCONNECT\nClient\nSent to server to specify connection information\n\n\nPUB\nClient\nPublish a message to a subject, with optional reply subject\n\n\nSUB\nClient\nSubscribe to a subject (or subject wildcard)\n\n\nUNSUB\nClient\nUnsubscribe (or auto-unsubscribe) from subject\n\n\nMSG\nServer\nDelivers a message payload to a subscriber\n\n\nPING\nBoth\nPING keep-alive message\n\n\nPONG\nBoth\nPONG keep-alive response\n\n\n+OK\nServer\nAcknowledges well-formed protocol message in verbose mode\n\n\n-ERR\nServer\nIndicates a protocol error. May cause client disconnect.\n\n\n\nThe following sections explain each protocol message.\nINFO\nDescription\nAs soon as the server accepts a connection from the client, it will send information about itself and the configuration and security requirements that are necessary for the client to successfully authenticate with the server and exchange messages.\nWhen using the updated client protocol (see CONNECT below), INFO messages can be sent anytime by the server. This means clients with that protocol level need to be able to asynchronously handle INFO messages.\nSyntax\nINFO {[\"option_name\":option_value],...}\nThe valid options are as follows:\n\nserver_id: The unique identifier of the NATS server\nversion: The version of the NATS server\ngo: The version of golang the NATS server was built with\nhost: The IP address used to start the NATS server, by default this will be 0.0.0.0 and can be configured with -client_advertise host:port\nport: The port number the NATS server is configured to listen on\nmax_payload: Maximum payload size, in bytes, that the server will accept from the client.\nproto: An integer indicating the protocol version of the server. The server version 1.2.0 sets this to 1 to indicate that it supports the \"Echo\" feature.\nclient_id: An optional unsigned integer (64 bits) representing the internal client identifier in the server. This can be used to filter client connections in monitoring, correlate with error logs, etc...\nauth_required: If this is set, then the client should try to authenticate upon connect.\ntls_required: If this is set, then the client must perform the TLS/1.2 handshake. Note, this used to be ssl_required and has been updated along with the protocol from SSL to TLS.\ntls_verify: If this is set, the client must provide a valid certificate during the TLS handshake.\nconnect_urls : An optional list of server urls that a client can connect to. \n\nconnect_urls\nThe connect_urls field is a list of urls the server may send when a client first connects, and when there are changes to server cluster topology. This field is considered optional, and may be omitted based on server configuration and client protocol level.\nWhen a NATS server cluster expands, an INFO message is sent to the client with an updated connect_urls list. This cloud-friendly feature asynchronously notifies a client of known servers, allowing it to connect to servers not originally configured.\nThe connect_urls will contain a list of strings with an IP and port, looking like this: \"connect_urls\":[\"10.0.0.184:4333\",\"192.168.129.1:4333\",\"192.168.192.1:4333\"]\nExample\nBelow you can see a sample connection string from a telnet connection to the demo.nats.io site.\n% telnet demo.nats.io 4222\n\nTrying 107.170.221.32...\nConnected to demo.nats.io.\nEscape character is '^]'.\nINFO {\"server_id\":\"Zk0GQ3JBSrg3oyxCRRlE09\",\"version\":\"1.2.0\",\"proto\":1,\"go\":\"go1.10.3\",\"host\":\"0.0.0.0\",\"port\":4222,\"max_payload\":1048576,\"client_id\":2392}\n\nCONNECT\nDescription\nThe CONNECT message is the client version of the INFO message. Once the client has established a TCP/IP socket connection with the NATS server, and an INFO message has been received from the server, the client may send a CONNECT message to the NATS server to provide more information about the current connection as well as security information.\nSyntax\nCONNECT {[\"option_name\":option_value],...}\nThe valid options are as follows:\n\nverbose: Turns on +OK protocol acknowledgements.\npedantic: Turns on additional strict format checking, e.g. for properly formed subjects\ntls_required: Indicates whether the client requires an SSL connection.\nauth_token: Client authorization token (if auth_required is set)\nuser: Connection username (if auth_required is set)\npass: Connection password (if auth_required is set)\nname: Optional client name\nlang: The implementation language of the client.\nversion: The version of the client.\nprotocol: optional int. Sending 0 (or absent) indicates client supports original protocol. Sending 1 indicates that the client supports dynamic reconfiguration of cluster topology changes by asynchronously receiving INFO messages with known servers it can reconnect to.\necho: Optional boolean. If set to true, the server (version 1.2.0+) will not send originating messages from this connection to its own subscriptions. Clients should set this to true only for server supporting this feature, which is when proto in the INFO protocol is set to at least 1.\n\nExample\nHere is an example from the default string of the Go client:\n[CONNECT {\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"\",\"lang\":\"go\",\"version\":\"1.2.2\",\"protocol\":1}]\\r\\n\nMost clients set verbose to false by default. This means that the server should not confirm each message it receives on this connection with a +OK back to the client.\nPUB\nDescription\nThe PUB message publishes the message payload to the given subject name, optionally supplying a reply subject. If a reply subject is supplied, it will be delivered to eligible subscribers along with the supplied payload. Note that the payload itself is optional. To omit the payload, set the payload size to 0, but the second CRLF is still required.\nSyntax\nPUB [reply-to] \\r\\n[payload]\\r\\n\nwhere:\n\nsubject: The destination subject to publish to\nreply-to: The optional reply inbox subject that subscribers can use to send a response back to the publisher/requestor\n#bytes: The payload size in bytes\npayload: The message payload data\n\nExample\nTo publish the ASCII string message payload \"Hello NATS!\" to subject FOO:\nPUB FOO 11\\r\\nHello NATS!\\r\\n\nTo publish a request message \"Knock Knock\" to subject FRONT.DOOR with reply subject INBOX.22:\nPUB FRONT.DOOR INBOX.22 11\\r\\nKnock Knock\\r\\n\nTo publish an empty message to subject NOTIFY:\nPUB NOTIFY 0\\r\\n\\r\\n\nSUB\nDescription\nSUB initiates a subscription to a subject, optionally joining a distributed queue group.\nSyntax\nSUB [queue group] \\r\\n\nwhere:\n\nsubject: The subject name to subscribe to\nqueue group: If specified, the subscriber will join this queue group\nsid: A unique alphanumeric subscription ID, generated by the client\n\nExample\nTo subscribe to the subject FOO with the connection-unique subscription identifier (sid) 1:\nSUB FOO 1\\r\\n\nTo subscribe the current connection to the subject BAR as part of distribution queue group G1 with sid 44:\nSUB BAR G1 44\\r\\n\nUNSUB\nDescription\nUNSUB unsubcribes the connection from the specified subject, or auto-unsubscribes after the specified number of messages has been received.\nSyntax\nUNSUB [max_msgs]\nwhere:\n\nsid: The unique alphanumeric subscription ID of the subject to unsubscribe from\nmax_msgs: An optional number of messages to wait for before automatically unsubscribing\n\nExample\nThe following examples concern subject FOO which has been assigned sid 1. To unsubscribe from FOO:\nUNSUB 1\\r\\n\nTo auto-unsubscribe from FOO after 5 messages have been received:\nUNSUB 1 5\\r\\n\nMSG\nDescription\nThe MSG protocol message is used to deliver an application message to the client.\nSyntax\nMSG [reply-to] \\r\\n[payload]\\r\\n\nwhere:\n\nsubject: Subject name this message was received on\nsid: The unique alphanumeric subscription ID of the subject\nreply-to: The inbox subject on which the publisher is listening for responses\n#bytes: Size of the payload in bytes\npayload: The message payload data\n\nExample\nThe following message delivers an application message from subject FOO.BAR:\nMSG FOO.BAR 9 11\\r\\nHello World\\r\\n\nTo deliver the same message along with a reply inbox:\nMSG FOO.BAR 9 INBOX.34 11\\r\\nHello World\\r\\n\nPING/PONG\nDescription\nPING and PONG implement a simple keep-alive mechanism between client and server. Once a client establishes a connection to the NATS server, the server will continuously send PING messages to the client at a configurable interval. If the client fails to respond with a PONG message within the configured response interval, the server will terminate its connection. If your connection stays idle for too long, it is cut off.\nIf the server sends a ping request, you can reply with a pong message to notify the server that you are still interested. You can also ping the server and will receive a pong reply. The ping/pong interval is configurable.\nThe server uses normal traffic as a ping/pong proxy, so a client that has messages flowing may not receive a ping from the server.\nSyntax\nPING\\r\\n\nPONG\\r\\n\nExample\nThe following example shows the demo server pinging the client and finally shutting it down.\ntelnet demo.nats.io 4222\n\nTrying 107.170.221.32...\nConnected to demo.nats.io.\nEscape character is '^]'.\nINFO {\"server_id\":\"Zk0GQ3JBSrg3oyxCRRlE09\",\"version\":\"1.2.0\",\"proto\":1,\"go\":\"go1.10.3\",\"host\":\"0.0.0.0\",\"port\":4222,\"max_payload\":1048576,\"client_id\":2392}\nPING\nPING\n-ERR 'Stale Connection'\nConnection closed by foreign host.\n+OK/ERR\nDescription\nWhen the verbose connection option is set to true (the default value), the server acknowledges each well-formed protocol message from the client with a +OK message. Most NATS clients set the verbose option to false using the CONNECT message\nThe -ERR message is used by the server indicate a protocol, authorization, or other runtime connection error to the client. Most of these errors result in the server closing the connection.\nHandling of these errors usually has to be done asynchronously.\nSyntax\n+OK\n-ERR \nSome protocol errors result in the server closing the connection. Upon recieving these errors, the connection is no longer valid and the client should clean up relevant resources. These errors include:\n\n-ERR 'Unknown Protocol Operation': Unknown protocol error\n-ERR 'Attempted To Connect To Route Port': Client attempted to connect to a route port instead of the client port\n-ERR 'Authorization Violation': Client failed to authenticate to the server with credentials specified in the CONNECT message\n-ERR 'Authorization Timeout': Client took too long to authenticate to the server after establishing a connection (default 1 second)\n-ERR 'Invalid Client Protocol': Client specified an invalid protocol version in the CONNECT message\n-ERR 'Maximum Control Line Exceeded': Message destination subject and reply subject length exceeded the maximum control line value specified by the max_control_line server option. The default is 1024 bytes.\n-ERR 'Parser Error': Cannot parse the protocol message sent by the client\n-ERR 'Secure Connection - TLS Required': The server requires TLS and the client does not have TLS enabled.\n-ERR 'Stale Connection': The server hasn't received a message from the client, including a PONG in too long.\n-ERR 'Maximum Connections Exceeded': This error is sent by the server when creating a new connection and the server has exceeded the maximum number of connections specified by the max_connections server option. The default is 64k.\n-ERR 'Slow Consumer': The server pending data size for the connection has reached the maximum size (default 10MB).\n-ERR 'Maximum Payload Violation': Client attempted to publish a message with a payload size that exceeds the max_payload size configured on the server. This value is supplied to the client upon connection in the initial INFO message. The client is expected to do proper accounting of byte size to be sent to the server in order to handle this error synchronously.\n\nProtocol error messages where the connection remains open are listed below. The client should not close the connection in these cases.\n\n-ERR 'Invalid Subject': Client sent a malformed subject (e.g. sub foo. 90)\n-ERR 'Permissions Violation for Subscription to ': The user specified in the CONNECT message does not have permission to subscribe to the subject.\n-ERR 'Permissions Violation for Publish to ': The user specified in the CONNECT message does not have permissions to publish to the subject.\n\n"},"nats_protocol/nats-client-dev.html":{"url":"nats_protocol/nats-client-dev.html","title":"Developing a Client","keywords":"","body":"NATS Client Development Guide\nThis guide provides you with considerations for developing NATS clients, including:\n\nCONNECT handling\nAuthorization\nVerbose (acks)\nPedantic mode\nPing/pong interval\nParsing the protocol\nDeciding on a parsing strategy\nStoring and dispatching subscription callbacks\nImplementing requests/response\nError handling, disconnecting and reconnecting\nCluster support\n\nProbably the best way to learn about implementing a client is to look at one of the client's maintained by the Synadia team. These clients are generally full featured, so if you can use them, that is even better, but if you have to write a client these may go beyond your needs while still capturing many of the design considerations discussed here.\n\ngo\nnode\ntypescript\npython2\npython asyncio\njava\nc#\nruby\nc\n\nClient connection options\nClients can connect in authenticated or unauthenticated mode, as well as verbose mode which enables acknowledgements. See the protocol documentation for details.\nClient authorization\nBy default clients can connect to the server in unauthenticated mode. You can configure the NATS server to require password authentication to connect.\nFor example, using the command line:\nnats-server -DV -m 8222 -user foo -pass bar\nThe client must then authenticate to connect to the server. For example:\nnats.Connect(\"nats://foo:bar@localhost:4222\")\nVerbose mode\nWhen 'verbose' is enabled (via the CONNECT message), the NATS server will return +OK to acknowledge receipt of a valid protocol message. The NATS server automatically runs in verbose mode. Most client implementations disable verbose mode (set it to false in the CONNECT message) for performance reasons.\nPedantic mode\nA client may also support 'pedantic' mode. Pedantic mode indicates to the server that strict protocol enforcement is required.\nPing/pong interval\nNATS implements auto-pruning. When a client connects to the server, the server expects that client to be active. Periodically, the NATS server pings each subscriber, expecting a reply. If there is no reply within the configurable time limit, the server disconnects the client.\nParsing the protocol\nNATS provides a text-based message format. The text-based protocol makes it easy to implement NATS clients. The key consideration is deciding on a parsing strategy.\nThe NATS server implements a zero allocation byte parser that is fast and efficient. Off the wire, a NATS message is simply a slice of bytes. Across the wire the message is transported as an immutable string over a TCP connection. It is up to the client to implement logic to parse the message.\nThe NATS message structure includes the Subject string, an optional Reply string, and an optional Data field that is a byte array. The type Msg is a structure used by Subscribers and PublishMsg().\ntype Msg struct {\n Subject string\n Reply string\n Data []byte\n Sub *Subscription\n}\nA NATS publisher publishes the data argument to the given subject. The data argument is left untouched and needs to be correctly interpreted on the receiver. How the client parses a NATS message depends on the programming language.\nDeciding on a parsing strategy\nGenerally, protocol parsing for a NATS client is a string operation. In Python, for example, string operations are faster than regex. The Go and Java clients also use string operations to parse the message. But, if you look at the Ruby client, regex is used to parse the protocol because in Ruby regex is faster that string operations.\nIn sum, there is no magic formula for parsingโ€”it depends on the programming language. But, you need to take into consideration how you are going to parse the message when you write a client.\nStoring and dispatching subscription callbacks\nWhen you make a subscription to the server, you need to store and dispatch callback handlers.\nOn the client side, you need a hash map for this data structure. The hash map will be storing the callback that maps the subscription ID to the subscription.\nThe key of the hash map is the subscription ID. The key is used to look up the callback in the hash map. When you process the NATS message off the wire, you pass the parameters subject, reply subject, and the payload to the callback handler, which does its work.\nThus, you must store the mapping of subscription ID to the callback. Inside the subscription you have the callback.\nImplementing request/response\nWhen to use pub/sub vs. req/rep depends on your use case. Run the tutorials for each to understand the differences between each style of implementation.\nError handling, disconnecting and reconnecting\nConsiderations for error handling primarily include handling client disconnections and implementing retry logic.\nCluster support\nThe NATS client has reconnection logic. So, if you are implementing clustering, you need to implement reconnect callbacks a priori, meaning you cannot modify it during runtime. When you start it, you need to have that information already.\n"},"nats_protocol/nats-server-protocol.html":{"url":"nats_protocol/nats-server-protocol.html","title":"NATS Cluster Protocol","keywords":"","body":"NATS Cluster Protocol\nThe NATS server clustering protocol describes the messages passed between NATS servers within a cluster to share subscription state, forward messages, and share cluster topology. It is a simple, text-based publish/subscribe style protocol. Servers communicate with each other through a regular TCP/IP socket using a small set of protocol operations that are terminated by newline.\nThe NATS server implements a zero allocation byte parser that is fast and efficient.\nThe NATS cluster protocol is very similar to that of the NATS client protocol. In the context of a cluster, it can be helpful to visualize a server being a proxy operating on behalf of its connected clients, subscribing, unsubscribing, sending and receiving messages.\nNATS Cluster protocol conventions\nSubject names and wildcards: The NATS cluster protocol has the same features and restrictions as the client with respect to subject names and wildcards, with one addition - a server can publish subjects prefixed with _SYS., which is reserved for messages that are internally generated by a server.\nField Delimiters: The fields of NATS protocol messages are delimited by whitespace characters '`' (space) or\\t` (tab).\nMultiple whitespace characters will be treated as a single field delimiter.\nNewlines: Like other text-based protocols, NATS uses CR followed by LF (CR+LF, \\r\\n, 0x0D0A) to terminate protocol messages. This newline sequence is also used to mark the beginning of the actual message payload in a PUB or MSG protocol message.\nNATS Cluster protocol messages\nThe following table briefly describes the NATS cluster protocol messages.\nAs in the client protocol, the NATS protocol operation names are case insensitive, thus SUB foo 1\\r\\n and sub foo 1\\r\\n are equivalent.\nClick the name to see more detailed information, including syntax:\n\n\n\nOP Name\nSent By\nDescription\n\n\n\n\nINFO\nAll Servers\nSent after initial TCP/IP connection and to update cluster knowledge\n\n\nCONNECT\nAll Servers\nSent to establish a route\n\n\nPUB\nSending Server\nSent when a message is published by a client.\n\n\nSUB\nAll Servers\nSubscribes to a subject on behalf of interested clients.\n\n\nUNSUB\nAll Servers\nUnsubscribe (or auto-unsubscribe) from subject.\n\n\nMSG\nReceiving Server\nDelivers a message payload to a subscriber on the local server.\n\n\nPING\nAll Servers\nPING keep-alive message\n\n\nPONG\nAll Servers\nPONG keep-alive response\n\n\n+OK/-ERR\nAll Servers\nIndicates a protocol error. Will cause the server to disconnect.\n\n\n\nThe following sections explain each protocol message.\nINFO\nDescription\nAs soon as the server accepts a connection from another server, it will send information about itself and the configuration and security requirements that are necessary for the other server to successfully authenticate with the server and exchange messages.\nThe connecting server also sends an INFO message. The accepting server will add an ip field containing the address and port of the connecting server, and forward the new server's INFO message to all servers it is routed to.\nAny servers in a cluster receiving an INFO message with an ip field will attempt to connect to the server at that address, unless already connected. This propagation of INFO messages on behalf of a connecting server provides automatic discovery of new servers joining a cluster.\nSyntax\nINFO {[\"option_name\":option_value],...}\nThe valid options are as follows:\n\nserver_id: The unique identifier of the NATS server\nversion: The version of the NATS server\ngo: The version of golang the NATS server was built with\nhost: The host specified in the cluster parameter/options\nport: The port number specified in the cluster parameter/options\nauth_required: If this is set, then the server should try to authenticate upon connect.\ntls_required: If this is set, then the server must authenticate using TLS.\nmax_payload: Maximum payload size that the server will accept.\nconnect_urls : A list of server urls that a client can connect to.\nip: Optional route connection address of a server, nats-route://:\n\nExample\nBelow is an example of an INFO string received by a NATS server, with the ip field.\nINFO {\"server_id\":\"KP19vTlB417XElnv8kKaC5\",\"version\":\"0.9.4\",\"go\":\"\",\"host\":\"localhost\",\"port\":5222,\"auth_required\":false,\"tls_required\":false,\"tls_verify\":false,\"max_payload\":1048576,\"ip\":\"nats-route://127.0.0.1:5222/\",\"connect_urls\":[\"localhost:4222\"]}\nCONNECT\nDescription\nThe CONNECT message is analogous to the INFO message. Once the NATS server has established a TCP/IP socket connection with another server, and an INFO message has been received, the server will send a CONNECT message to provide more information about the current connection as well as security information.\nSyntax\nCONNECT {[\"option_name\":option_value],...}\nThe valid options are as follows:\n\nverbose: Turns on +OK protocol acknowledgements.\npedantic: Turns on additional strict format checking, e.g. for properly formed subjects\ntls_required: Indicates whether the server requires an SSL connection.\nauth_token: Authorization token\nuser: Connection username (if auth_required is set)\npass: Connection password (if auth_required is set)\nname: Generated Server Name\nlang: The implementation language of the server (go).\nversion: The version of the server.\n\nExample\nHere is an example from the default string from a server.\nCONNECT {\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"wt0vffeQyoDGMVBC2aKX0b\"}\\r\\n\nServers should set verbose to false by default. This means that other routed servers will not be sending an +OK payload back after the remote server ingested the message.\nPUB\nDescription\nThe PUB message publishes the message payload to the given subject name, optionally supplying a reply subject, to another server. If a reply subject is supplied, it will be delivered to eligible subscribers along with the supplied payload. Note that the payload itself is optional. To omit the payload, set the payload size to 0.\nSyntax\nPUB [reply-to] \\r\\n[payload]\\r\\n\nwhere:\n\nsubject: The destination subject to publish to\nreply-to: The reply inbox subject that subscribers can use to send a response back to the publisher/requestor\n#bytes: The payload size in bytes\npayload: The message payload data\n\nExample\nTo publish the string message payload \"Hello NATS!\" to subject FOO:\nPUB FOO 11\\r\\nHello NATS!\\r\\n\nTo publish a request message \"Knock Knock\" to subject FRONT.DOOR with reply subject INBOX.22:\nPUB FRONT.DOOR INBOX.22 11\\r\\nKnock Knock\\r\\n\nTo publish an empty message to subject NOTIFY:\nPUB NOTIFY 0\\r\\n\\r\\n\nSUB\nDescription\nSUB initiates a subscription to a subject, optionally joining a distributed queue group.\nSyntax\nBasic Subscription: SUB RSID::\\r\\n\nQueue Subscription: SUB QRSID::\\r\\n\nwhere:\n\nsubject: The subject name to subscribe to\nqueue: If specified, the subscriber will join this queue group\ncid: A 64bit unsigned integer representing the client connection\nsid: A unique alphanumeric subscription ID representing the server's subscription\n\nExample\nTo subscribe to the subject FOO with the local unique subject identifier of 1, and the connection-unique subject identifier (sid) 1:\nSUB FOO RSID:1:1\\r\\n\nTo subscribe the current connection to the subject BAR as part of distribution queue group G1 with local sid of 14, and a client sid 44:\nSUB BAR G1 QRSID:14:44\\r\\n\nUNSUB\nDescription\nUNSUB unsubcribes the connection from the specified subject, or auto-unsubscribes after the specified number of messages has been received. It is sent by a server when one of it's clients unsubscribes.\nSyntax\nBasic Subscription: UNSUB RSID:: [max_msgs]\\r\\n\nQueue Subscription: UNSUB QRSID:: [max_msgs]\\r\\n\nwhere:\n\nsid: The unique alphanumeric subscription ID of the subject to unsubscribe from\nmax_msgs: Number of messages to wait for before automatically unsubscribing\ncid: A 64bit unsigned integer representing the client connection\nsid: A unique alphanumeric subscription ID representing the server's subscription\n\nExample\nThe following examples concern subject FOO which has been assigned an internal subscriber id of 5, and a client sid of 1. To unsubscribe from FOO:\nUNSUB RSID:5:1\\r\\n\nTo auto-unsubscribe from FOO after 5 messages have been received:\nUNSUB RSID:1:1 5\\r\\n\nMSG\nDescription\nThe MSG protocol message delivers a message from another server.\nSyntax\nMSG [reply-to] \\r\\n[payload]\\r\\n\nwhere:\n\nsubject: Subject name this message was received on\nsid: The unique alphanumeric subscription ID of the subject\nreply-to: The inbox subject on which the publisher is listening for responses\n#bytes: Size of the payload in bytes\npayload: The message payload data\n\nExample\nThe following message delivers a message from subject FOO.BAR:\nMSG FOO.BAR 9 11\\r\\nHello World\\r\\n\nDeliver the same message along with a reply inbox:\nMSG FOO.BAR 9 INBOX.34 11\\r\\nHello World\\r\\n\nPING/PONG\nDescription\nPING and PONG implement a simple keep-alive mechanism between servers. Once two servers establish a connection with each other, the NATS server will continuously send PING messages to other servers at a configurable interval. If another server fails to respond with a PONG message within the configured response interval, the server will terminate its connection. If your connection stays idle for too long, it is cut off.\nIf the another server sends a ping request, a server will reply with a pong message to notify the other server that it is still present.\nSyntax\nPING\\r\\n\nPONG\\r\\n\n+OK/ERR\nDescription\nWhen the verbose connection option is set to true (the default value), the server acknowledges each well-formed protocol message with a +OK message. NATS servers set the verbose option to false using the CONNECT message\nThe -ERR message is used by the server indicate a protocol, authorization, or other runtime connection error to another server. Most of these errors result in the server closing the connection.\nHandling of these errors usually has to be done asynchronously.\nSyntax\n+OK\n-ERR \nProtocol error messages which close the connection:\n\n-ERR 'Unknown Protocol Operation': Unknown protocol error\n-ERR 'Authorization Violation': Server failed to authenticate to another server with credentials specified in the CONNECT message.\n-ERR 'Authorization Timeout': Server took too long to authenticate to another server after establishing a connection (default 1 second)\n-ERR 'Parser Error': Cannot parse the protocol message sent by another server\n-ERR 'Stale Connection': PING/PONG interval expired.\n-ERR 'Slow Consumer': The other server's pending data size for the route connection has been exceeded. The default limit is time based, where data cannot be flushed within a two second write deadline.\n-ERR 'Maximum Payload Exceeded': Server attempted to publish a message with a payload size that exceeds the max_payload size configured on another server.\n\nProtocol error messages which do not close the connection:\n\n-ERR 'Invalid Subject': Server sent a malformed subject (e.g. sub foo. 90)\n\n"}}} \ No newline at end of file diff --git a/docs/sys_accounts/index.html b/docs/sys_accounts/index.html new file mode 100644 index 0000000..f205351 --- /dev/null +++ b/docs/sys_accounts/index.html @@ -0,0 +1,2341 @@ + + + + + + + System Accounts ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      + + + + + + + + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                      System Events

                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      NATS servers leverage Account support and generate events such as:

                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                      • account connect/disconnect
                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                      • authentication errors
                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                      • server shutdown
                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                      • server stat summary
                                                                                                                                                                                                                                      • +
                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      In addition the server supports a limitted number of requests that can be used to query for account connections, server stat summaries, and pinging servers in the cluster.

                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      These events are only accepted and visible to system account users.

                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      The System Events Tutorial

                                                                                                                                                                                                                                      +

                                                                                                                                                                                                                                      You can learn more about System Accounts in the Tutorial.

                                                                                                                                                                                                                                      + + +
                                                                                                                                                                                                                                      + +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                      + +

                                                                                                                                                                                                                                      results matching ""

                                                                                                                                                                                                                                      +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        No results matching ""

                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/sys_accounts/sys_accounts.html b/docs/sys_accounts/sys_accounts.html new file mode 100644 index 0000000..997077a --- /dev/null +++ b/docs/sys_accounts/sys_accounts.html @@ -0,0 +1,2536 @@ + + + + + + + Configuration ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        + + + + + + + + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        System Events Tutorial

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        The following is a short tutorial on how you can activate a system account to:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        • receive periodic updates from the server
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • send requests to the server
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • send an account update to the server
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Events and Services

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        The system account publishes messages under well known subject patterns.

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Server initiated events:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        • $SYS.ACCOUNT.<id>.CONNECT (client connects)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • $SYS.ACCOUNT.<id>.DISCONNECT (client disconnects)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • $SYS.SERVER.ACCOUNT.<id>.CONNS (connections for an account changed)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • $SYS.SERVER.<id>.CLIENT.AUTH.ERR (authentication error)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • $SYS.ACCOUNT.<id>.LEAFNODE.CONNECT (leaf node connnects)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • $SYS.SERVER.<id>.STATSZ (stats summary)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        In addition other tools with system account privileges, can initiate requests:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        • $SYS.REQ.SERVER.<id>.STATSZ (request server stat summary)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • $SYS.REQ.SERVER.PING (discover servers - will return multiple messages)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Servers like nats-account-server publish system account messages when a claim is updated, the nats-server listens for them, and updates its account information accordingly:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        • $SYS.ACCOUNT.<id>.CLAIMS.UPDATE
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        With these few messages you can build fairly surprisingly useful monitoring tools:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        • health/load of your servers
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • client connects/disconnects
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • account connections
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • authentication errors
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Enabling System Events

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        To enable and access system events, you'll have to:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        • Create an Operator, Account and User
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • Run a NATS Account Server (or Memory Resolver)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Create an Operator, Account, User

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Let's create an operator, system account and system account user:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        # Create an operator if you 
                                                                                                                                                                                                                                        +> nsc add operator -n SAOP
                                                                                                                                                                                                                                        +Generated operator key - private key stored "~/.nkeys/SAOP/SAOP.nk"
                                                                                                                                                                                                                                        +Success! - added operator "SAOP"
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +# Add the system account
                                                                                                                                                                                                                                        +> nsc add account -n SYS
                                                                                                                                                                                                                                        +Generated account key - private key stored "~/.nkeys/SAOP/accounts/SYS/SYS.nk"
                                                                                                                                                                                                                                        +Success! - added account "SYS"
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +# Add a system account user
                                                                                                                                                                                                                                        +> nsc add user -n SYSU
                                                                                                                                                                                                                                        +Generated user key - private key stored "~/.nkeys/SAOP/accounts/SYS/users/SYSU.nk"
                                                                                                                                                                                                                                        +Generated user creds file "~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds"
                                                                                                                                                                                                                                        +Success! - added user "SYSU" to "SYS"
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        By default, the operator JWT can be found in ~/.nsc/nats/<operator_name>/<operator.name>.jwt.

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Nats-Account-Server

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        To vend the credentials to the nats-server, we'll use a nats-account-server. Let's start a nats-account-server to serve the JWT credentials:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        > nats-account-server -nsc ~/.nsc/nats/SAOP
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        The server will by default vend JWT configurations on the an endpoint at: http(s)://<server_url>/jwt/v1/accounts/.

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        NATS Server Configuration

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        The server configuration will need:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                        • The operator JWT - (~/.nsc/nats/<operator_name>/<operator.name>.jwt)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • The URL where the server can resolve accounts (http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        • The public key of the system_account
                                                                                                                                                                                                                                        • +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        The only thing we don't have handy is the public key for the system account. We can get it easy enough:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        > nsc list accounts -W
                                                                                                                                                                                                                                        +╭─────────────────────────────────────────────────────────────────╮
                                                                                                                                                                                                                                        +│                            Accounts                             │
                                                                                                                                                                                                                                        +├──────┬──────────────────────────────────────────────────────────┤
                                                                                                                                                                                                                                        +│ Name │ Public Key                                               │
                                                                                                                                                                                                                                        +├──────┼──────────────────────────────────────────────────────────┤
                                                                                                                                                                                                                                        +│ SYS  │ ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF │
                                                                                                                                                                                                                                        +╰──────┴──────────────────────────────────────────────────────────╯
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Because the server has additional resolver implementations, you need to enclose the server url like: URL(<url>).

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Let's create server config with the following contents and save it to server.conf:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        operator: /Users/synadia/.nsc/nats/SAOP/SAOP.jwt
                                                                                                                                                                                                                                        +system_account: ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF
                                                                                                                                                                                                                                        +resolver: URL(http://localhost:9090/jwt/v1/accounts/)
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Let's start the nats-server:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        > nats-server -c server.conf
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Inspecting Server Events

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Let's add a subscriber for all the events published by the system account:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        > nats-sub -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds ">"
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Very quickly we'll start seeing messages from the server as they are published by the NATS server. As should be expected, the messages are just JSON, so they can easily be inspected even if just using a simple nats-sub to read them.

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        To see an an account update:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        > nats-pub -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds foo bar
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        The subscriber will print the connect and disconnect:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        [#35] Received on [$SYS.SERVER.ACCOUNT.ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF.CONNS]: '{
                                                                                                                                                                                                                                        +  "server": {
                                                                                                                                                                                                                                        +    "host": "0.0.0.0",
                                                                                                                                                                                                                                        +    "id": "NBTGVY3OKDKEAJPUXRHZLKBCRH3LWCKZ6ZXTAJRS2RMYN3PMDRMUZWPR",
                                                                                                                                                                                                                                        +    "ver": "2.0.0-RC5",
                                                                                                                                                                                                                                        +    "seq": 32,
                                                                                                                                                                                                                                        +    "time": "2019-05-03T14:53:15.455266-05:00"
                                                                                                                                                                                                                                        +  },
                                                                                                                                                                                                                                        +  "acc": "ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF",
                                                                                                                                                                                                                                        +  "conns": 1,
                                                                                                                                                                                                                                        +  "total_conns": 1
                                                                                                                                                                                                                                        +}'
                                                                                                                                                                                                                                        +[#36] Received on [$SYS.ACCOUNT.ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF.DISCONNECT]: '{
                                                                                                                                                                                                                                        +  "server": {
                                                                                                                                                                                                                                        +    "host": "0.0.0.0",
                                                                                                                                                                                                                                        +    "id": "NBTGVY3OKDKEAJPUXRHZLKBCRH3LWCKZ6ZXTAJRS2RMYN3PMDRMUZWPR",
                                                                                                                                                                                                                                        +    "ver": "2.0.0-RC5",
                                                                                                                                                                                                                                        +    "seq": 33,
                                                                                                                                                                                                                                        +    "time": "2019-05-03T14:53:15.455304-05:00"
                                                                                                                                                                                                                                        +  },
                                                                                                                                                                                                                                        +  "client": {
                                                                                                                                                                                                                                        +    "start": "2019-05-03T14:53:15.453824-05:00",
                                                                                                                                                                                                                                        +    "host": "127.0.0.1",
                                                                                                                                                                                                                                        +    "id": 6,
                                                                                                                                                                                                                                        +    "acc": "ADWJVSUSEVC2GHL5GRATN2LOEOQOY2E6Z2VXNU3JEIK6BDGPWNIW3AXF",
                                                                                                                                                                                                                                        +    "user": "UACPEXCAZEYWZK4O52MEGWGK4BH3OSGYM3P3C3F3LF2NGNZUS24IVG36",
                                                                                                                                                                                                                                        +    "name": "NATS Sample Publisher",
                                                                                                                                                                                                                                        +    "lang": "go",
                                                                                                                                                                                                                                        +    "ver": "1.7.0",
                                                                                                                                                                                                                                        +    "stop": "2019-05-03T14:53:15.45526-05:00"
                                                                                                                                                                                                                                        +  },
                                                                                                                                                                                                                                        +  "sent": {
                                                                                                                                                                                                                                        +    "msgs": 1,
                                                                                                                                                                                                                                        +    "bytes": 3
                                                                                                                                                                                                                                        +  },
                                                                                                                                                                                                                                        +  "received": {
                                                                                                                                                                                                                                        +    "msgs": 0,
                                                                                                                                                                                                                                        +    "bytes": 0
                                                                                                                                                                                                                                        +  },
                                                                                                                                                                                                                                        +  "reason": "Client Closed"
                                                                                                                                                                                                                                        +}'
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        $SYS.REQ.SERVER.PING - Discovering Servers

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        To discover servers in the cluster, and get a small heath summary, publish a request to $SYS.REQ.SERVER.PING. Note that while the example below uses nats-req, only the first answer for the request will be printed. You can easily modify the example to wait until no additional responses are received for a specific amount of time, thus allowing for all responses to be collected.

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        > nats-req -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds \$SYS.REQ.SERVER.PING ""
                                                                                                                                                                                                                                        +Published [$SYS.REQ.SERVER.PING] : ''
                                                                                                                                                                                                                                        +Received  [_INBOX.G5mbsf0k7l7nb4eWHa7GTT.omklmvnm] : '{
                                                                                                                                                                                                                                        +  "server": {
                                                                                                                                                                                                                                        +    "host": "0.0.0.0",
                                                                                                                                                                                                                                        +    "id": "NCZQDUX77OSSTGN2ESEOCP4X7GISMARX3H4DBGZBY34VLAI4TQEPK6P6",
                                                                                                                                                                                                                                        +    "ver": "2.0.0-RC9",
                                                                                                                                                                                                                                        +    "seq": 47,
                                                                                                                                                                                                                                        +    "time": "2019-05-02T14:02:46.402166-05:00"
                                                                                                                                                                                                                                        +  },
                                                                                                                                                                                                                                        +  "statsz": {
                                                                                                                                                                                                                                        +    "start": "2019-05-02T13:41:01.113179-05:00",
                                                                                                                                                                                                                                        +    "mem": 12922880,
                                                                                                                                                                                                                                        +    "cores": 20,
                                                                                                                                                                                                                                        +    "cpu": 0,
                                                                                                                                                                                                                                        +    "connections": 2,
                                                                                                                                                                                                                                        +    "total_connections": 2,
                                                                                                                                                                                                                                        +    "active_accounts": 1,
                                                                                                                                                                                                                                        +    "subscriptions": 10,
                                                                                                                                                                                                                                        +    "sent": {
                                                                                                                                                                                                                                        +      "msgs": 7,
                                                                                                                                                                                                                                        +      "bytes": 2761
                                                                                                                                                                                                                                        +    },
                                                                                                                                                                                                                                        +    "received": {
                                                                                                                                                                                                                                        +      "msgs": 0,
                                                                                                                                                                                                                                        +      "bytes": 0
                                                                                                                                                                                                                                        +    },
                                                                                                                                                                                                                                        +    "slow_consumers": 0
                                                                                                                                                                                                                                        +  }
                                                                                                                                                                                                                                        +}'
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        $SYS.SERVER.<id>.STATSZ - Requesting Server Stats Summary

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        If you know the server id for a particular server (such as from a response to $SYS.REQ.SERVER.PING), you can query the specific server for its health information:

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        nats-req -creds ~/.nkeys/SAOP/accounts/SYS/users/SYSU.creds \$SYS.REQ.SERVER.NC7AKPQRC6CIZGWRJOTVFIGVSL7VW7WXTQCTUJFNG7HTCMCKQTGE5PUL.STATSZ ""
                                                                                                                                                                                                                                        +Published [$SYS.REQ.SERVER.NC7AKPQRC6CIZGWRJOTVFIGVSL7VW7WXTQCTUJFNG7HTCMCKQTGE5PUL.STATSZ] : ''
                                                                                                                                                                                                                                        +Received  [_INBOX.DQD44ugVt0O4Ur3pWIOOD1.WQOBevoq] : '{
                                                                                                                                                                                                                                        +  "server": {
                                                                                                                                                                                                                                        +    "host": "0.0.0.0",
                                                                                                                                                                                                                                        +    "id": "NC7AKPQRC6CIZGWRJOTVFIGVSL7VW7WXTQCTUJFNG7HTCMCKQTGE5PUL",
                                                                                                                                                                                                                                        +    "ver": "2.0.0-RC5",
                                                                                                                                                                                                                                        +    "seq": 25,
                                                                                                                                                                                                                                        +    "time": "2019-05-03T14:34:02.066077-05:00"
                                                                                                                                                                                                                                        +  },
                                                                                                                                                                                                                                        +  "statsz": {
                                                                                                                                                                                                                                        +    "start": "2019-05-03T14:32:19.969037-05:00",
                                                                                                                                                                                                                                        +    "mem": 11874304,
                                                                                                                                                                                                                                        +    "cores": 20,
                                                                                                                                                                                                                                        +    "cpu": 0,
                                                                                                                                                                                                                                        +    "connections": 2,
                                                                                                                                                                                                                                        +    "total_connections": 4,
                                                                                                                                                                                                                                        +    "active_accounts": 1,
                                                                                                                                                                                                                                        +    "subscriptions": 10,
                                                                                                                                                                                                                                        +    "sent": {
                                                                                                                                                                                                                                        +      "msgs": 26,
                                                                                                                                                                                                                                        +      "bytes": 9096
                                                                                                                                                                                                                                        +    },
                                                                                                                                                                                                                                        +    "received": {
                                                                                                                                                                                                                                        +      "msgs": 2,
                                                                                                                                                                                                                                        +      "bytes": 0
                                                                                                                                                                                                                                        +    },
                                                                                                                                                                                                                                        +    "slow_consumers": 0
                                                                                                                                                                                                                                        +  }
                                                                                                                                                                                                                                        +}'
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + + +
                                                                                                                                                                                                                                        + +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                        + +

                                                                                                                                                                                                                                        results matching ""

                                                                                                                                                                                                                                        +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                          No results matching ""

                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/whats_new/whats_new_20.html b/docs/whats_new/whats_new_20.html new file mode 100644 index 0000000..126007e --- /dev/null +++ b/docs/whats_new/whats_new_20.html @@ -0,0 +1,2363 @@ + + + + + + + What's New in 2.0 ยท NATS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          + + + + + + + + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                          What's New in NATS 2.0

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          NATS 2.0 is the largest feature release since the original code base for the server was released. It includes features for security, multi-tenancy, larger networks, and secure sharing, allowing a new way of thinking about NATS as a globally shared utility and as a new and innovative way to solve on-premise communications for modern systems design.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Multi-Tenancy and Accounts

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Ever since NATS was originally designed, it has always been considered to be single tenant. Even when we added support for multiple users, the subject space was still a shared space, and care had to be taken when designing subject spaces so as to not interfere with other applications and services on the NATS systems. +As a matter of fact, designing the subject space, and most importantly the prefixes based on organization, or business unit or business function/service, was encouraged as an early exercise. However, even with the best intentions, large NATS systems became overly complex and managing and understanding the subject space was challenging at large scale. Even as we introduced authorization primitives to control which subjects users could publish or subscribe to, the challenge still remained. +NATS 2.0 introduces accounts. Accounts can be viewed as containers for a subject space. Instead of there being a global subject space that was bound to a server, NATS 2.0 now recognizes accounts, including the default global account $G that defines which data structures the server will utilize to match publishers to subscribers. These subject spaces are isolated and by default, no messages cross from one account to another. This allows multiple groups or organizations to use a simplified subject space that in the past, could have overlapped with others in a larger installation. It also allows for a single NATS infrastructure to be utilized by different users without the need to maintain many silos of NATS servers and clusters. +An account binds the subject space data structures, a sublist, and its associated caches, to a list of users. A client application is not aware of this account binding and this was by design to preserve existing clients and the simplicity of the NATS philosophy. When connected to a NATS server, the user is authenticated and validated, and the configuration tells the server which account to bind to the user. The messages then flow as normal, as published messages are matched to subscribers.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Streams and Services - Account Sharing

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          With the introduction of secure multi-tenancy in NATS 2.0, the desire for accounts expanded beyond just isolation. The NATS core team felt that this could possibly be used to simplify and ease the use of NATS when being utilized for many applications and services that want to communicate over certain subjects. Think of this as the microservices equivalent for NATS applications. In NATS 2.0 we define two abstract concepts that form the basis of sharing messages across accounts; Streams and Services. Streams are published messages defined by a subject, which could include a wildcard. Services are listening endpoints bound to subscribers that usually receive requests and return responses.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Both Streams and Services can be exported by an account owner for subsequent import by other accounts. There are two very important aspects of export and import that make account sharing even more powerful. First, exports can be public, meaning anyone can import, or then can require authorization. An account that wants to import the stream or service must have permission from the exporting account owner for the messages to flow between accounts. Second, the account owner always controls their own subject space. To this end, when importing, the account owner can pick and choose where the import will show up in their own subject space. This is a very powerful concept that allows some tremendous opportunities.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          For instance, in NGS, a commercial offering from Synadia, the power of accounts and sharing is utilized by providing a service imported to all new users of the system allowing them to get their current usage. As users connect and disconnect from the system, the usage servers in NGS gather the events from the system account and calculate the real-time usage information for each account. There is also a usage demo account that can export a single service with a wildcard, Anyone on the demo account can send a request to ngs.usage.ACCOUNT_PUB_NKEY with the body of the message being duration, e.g. 1h, 2d, etc. and receive the usage for that time period for the account. Although the usage is available in NGS, no one actually has access to the demo account since that would mean anyone on the system could get the usage for any known account just by the account’s public key. Which would not be desirable. The export on requires authorization, so no one can just blindly import the usage data. When a new account registers on the NGS system, the system will get a signed authorization token for the ability to import ONLY their account usage, e.g. . Moreover, the new account owner is allowed to specify where the import is placed, and in this case, we place it on . Thus for every account, the account can send a simple request to and receive their own, and only their own, account usage. All accounts look exactly the same. And in this example we utilized three (3) accounts to essentially have secure domains, or DMZs, to provide the security and control what we want to achieve.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Under the covers, the NGS system does several things to pull this off. For streams, the import that is present, will be checked when the importing account does a subscription. If any of the import is covered by the subscription, the system will create a secure shadow subscription on the exporting account subject space for the exported subject. This will map message sent to the original export subject (or a subset scope if it contains wildcards) into the import account. Services are a bit trickier, in essence, you are importing and mapping a subject that the import account can publish to. In our example above with , this is exactly what happens. When a new account publishes a message to the system can map that message into the exporting account’s subject space. But only doing this would be insufficient, since most of the time the published message is a request, meaning it has a reply subject and expects a response. The system needs to ensure that the response can also cross the account boundary in a secure and meaningful way. NATS 2.0 goes further and anonymizes the reply subject such that the responder has no way of knowing the requestor (unless the body of the message has a clue). NATS knows the requestor is guaranteed to be authorized, but there is no other way to understand or track the requestor. The system sets up ephemeral state to map the random and anonymous reply subject back into the importing account and with the correct reply subject. +We believe as time goes on, accounts and more specifically account sharing of streams and services, will be the most influential feature we introduced in the NATS 2.0 release. It will change the way people architect system on technologies like NATS. It will allow systems to scale but maintain simplicity and security in a way that was not possible before.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Security and Authentication

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Prior to NATS 2.0, NATS allowed multi-user deployments and supported username and password. As NATS evolved we supported bcrypt-based password and encouraged NATS users to utilize the tool provided to avoid having any plaintext passwords in their configuration files. However, this still felt insufficient. For NATS 2.0 we wanted to have a system that never had any access whatsoever to private keys, etc. The most common way to do this is via public key technologies. There are ways to prove one’s identity without ever sharing the private key from a public/private key pair. The team chose Ed25519 as its key algorithm for NATS 2.0. We may add others in the future, but our selection was specific in that Ed25519 can only be used to sign, and has very few branches in its code, providing a higher level of resistance to side-channel attacks like Spectre and Meltdown. NATS has an encoding of these keys making them easily distinguishable and selectable from a copy/paste perspective.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          The NATS 2.0 server upon client connect will pass a nonce field in the INFO. Clients use this nonce and their private key to sign the nonce. Servers are configured with authorized users’ public keys only. They can use the public key to validate that the client has the private key that corresponds to the public key. This combined with TLS provides a powerful way to secure and manage NATS clients and users without ever having access to a client’s private key.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          In addition for NATS 2.0, we also allow the system to extract a user identity from an x.509 client certificate. So for those who require client certificates and have the management and system infrastructure in place for client-side certificates, you will no longer have to duplicate identity to map to authorization primitives in NATS 2.0.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Network Topologies (Rewrite for Routes and Introduction of Gateways)

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          With the introduction of accounts, the existing clustering protocol for NATS needed to be rewritten. The protocol had some inefficiencies we wanted to correct for quite some time, and the need to introduce account scoping into the clustering protocol gave us an opportunity to correct some of these wrongs. Each message traveling between servers now had to designate which account it was bound to, or the account under which it was published. This allows remote servers to then match the account and subsequently match subscribers from that account for any given message.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Two inefficiencies that existed in the original protocol were handling of duplicates in the interest graph, and message delivery across a route in the presence of both normal subscribers and queue-based subscribers. Subscriptions (the interest graph) were always sent across a route to the other side even if the subjects were the same. The other side was smart enough not to send the message more than once for a given subject, however, the interest graph traffic could get very chatty even under normal behaviors. We also would send the message again between servers for every queue group that existed for a given message. This has served us well to date, but the team wanted to be able to update and improve this.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          In NATS 2.0 we have greatly reduced the interest graph traffic for duplicative subjects and there are more optimizations we can make without needing to change the protocol. We also only send a message once regardless of the interest being represented by normal and queue-based subscribers. The way these two features work is fairly straightforward. For interest propagation, we keep a suppression map that uses reference counts to only send interest for a given subject once, when it goes from 0->1, and when it goes from 1->0. All other changes on the local cluster simply increment or decrement the count in the map. For sending a message only once in the face of any interest, we force the protocol for clusters to require an affirmative list of queue groups to which the receiving server can possibly deliver the message. This allows the distributed queues to work correctly without requiring the “directed” message sends between servers.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Also in NATS 2.0 we introduced a new connection type called gateways. Gateways allow multiple NATS clusters to be connected together into a supercluster. The team was faced with many challenges in the design of gateways. We wanted the abstract to look fully connected, but we did not want an explosion of connections at large scale. We were also concerned with interest graph traffic that would need to propagate globally when all changes were actually local to a cluster.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Gateways can either be inbound or outbound, but not both. Every server in an origin cluster has exactly one outbound connection where it can send messages to the remote cluster. In addition, they may have zero or more inbound connections for which they send interest and receive messages themselves from the remote cluster. This forms a type of full mesh but with much fewer connections per server, and of course avoids any SPOF scenarios where only one server would be selected to perform communications between the clusters.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          In addition, outbound connections can be in one of two states, optimistic mode or full knowledge. In full knowledge, all interest graph changes need to be propagated globally for every 0->1 or 1->0 change. This could result in quite a bit of wasted control messages being sent and received. The team designed a way to have a connection in optimistic send mode to start. In this mode, a message will be sent over if we have no information at all about the message’s subject. If the remote side truly did not have any interest, it can asynchronously send a message indicating so, either for the subject itself, or the whole account. Obviously, this has some edge cases where we are sending more messages (both data and control) then we were saving. So a connection can change its state and move to full knowledge, meaning it wants to know all interest and it will not send a message unless it has knowledge that it should do so. We are continually tweaking this algorithm, but extremely excited about the power it has to create large superclusters. Synadia uses this technology in its NGS offering.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Gateways and SuperClusters support distributed queue subscriptions just like today. However, we have added selection criteria that will favor queue subscribers in a local cluster to the publisher, and only cross a gateway connection if no local cluster queue subscribers for a given group are available. We feel this is a powerful feature on top of what distributed queues give us already with transparent horizontal scalability. Combined with the recently introduced drain capabilities, allowing queue subscribers to exit a group without dropping any messages, this is an extremely powerful way to design scalable service endpoints for modern systems. This also provides zero configuration and high availability failover across multiple locations - entirely transparent to clients..

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          System Account

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          With NATS 2.0, NATS servers can now send and receive messages themselves. Prior to 2.0, NATS could only send and receive messages on behalf of connected clients. NATS servers now can generate events on things like connect and disconnect events and can receive messages and respond to requests. This is exciting for the team as we can now enable many things that were only possible before with protocol changes. In addition, internal messaging is bound to an account just like all users are in NATS 2.0. So all of the security, sharing of stream and services and mapping of subject spaces applies equally to system accounts as it does to any other user and account. Synadia’s NGS system uses system accounts to enforce limits globally and generate events that allow us to track usage. It also allows push-based updates in our decentrally managed system, described below.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Decentralized Management

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          As systems get larger, management through config files only becomes challenging and brittle. With the introduction of accounts and superclusters, we wanted to encourage large, shared NATS clusters that could power large organizations, even entire companies and possibly even a global utility. Config file-based management would not suffice.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          In NATS 2.0 the system can be configured to be completely de-centrally managed. In addition to Nkeys (Ed25519) keys, we introduce JWTs (only signed by Nkeys) into our system and a hierarchy that would utilize a root of trust. In NATS 2.0, the system understands operators, accounts and users. Each one is represented by a JWT. The operator JWT is self-signed and is the only thing required to be configured for each server. Account owners have JWTs signed by an operator and then generate user JWTs which are self-contained in terms of identity and authorization.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          When a server receives a client connect request, the client presents its user JWT (signed by an account) and a signed nonce, generated by its private key. The server validates the user JWT, checks the signature and if all are valid, will then use a resolver to pull the account JWT based on the public key in the user JWT. It will then validate the account JWT and finally check that the account JWT was signed by a signing key owned by the operator for which the server was configured.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          This allows a very scalable, yet very secure mechanism to allow rapid change of permissions, authentication, limits, etc. to a global shared NATS system.

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          LeafNodes - The best of both worlds

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          We are also introducing leaf nodes. A leaf node is a NATS server or small NATS cluster, running in a designated mode, that will connect to another cluster/supercluster. It will securely and transparently bind to an account on the remote cluster, and bridge communications between local clients and those on the remote cluster. This allows existing clients and systems to integrate with NATS 2.0 systems with increased security, accounts, and sharing all with no changes to an existing NATS application. For instance, we could run a leaf node server that allows existing applications with their own authorization to communicate with new clients that are secured by accounts and nkeys and utilize accounts for communication isolation and the sharing as the systems interfaces. With NATS 2.0 and a local leaf node server (a normal NATS 2.0 server) you could import streams and services and have them accessed by current applications with their own authentication (or none if physical security is in place). This means you can transparently use NGS, our global utility, and combine that with on-premise servers and clusters. You could securely and transparently use NGS to connect different regions or access meaningful streams and services as they become available on NGS. Leaf nodes utilizing accounts effectively create a DMZ between a local or private NATS deployment and NGS or external NATS clusters or superclusters.

                                                                                                                                                                                                                                          + + +
                                                                                                                                                                                                                                          + +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                          + +

                                                                                                                                                                                                                                          results matching ""

                                                                                                                                                                                                                                          +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + +

                                                                                                                                                                                                                                            No results matching ""

                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            +
                                                                                                                                                                                                                                            + +
                                                                                                                                                                                                                                            + + + + + + + + + + + + + + +
                                                                                                                                                                                                                                            + + +
                                                                                                                                                                                                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +