mirror of
				https://github.com/taigrr/nats.docs
				synced 2025-01-18 04:03:23 -08:00 
			
		
		
		
	
		
			
				
	
	
		
			3299 lines
		
	
	
		
			109 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			3299 lines
		
	
	
		
			109 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
 | |
| <!DOCTYPE HTML>
 | |
| <html lang="" >
 | |
|     <head>
 | |
|         <meta charset="UTF-8">
 | |
|         <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
 | |
|         <title>Streams ยท NATS</title>
 | |
|         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | |
|         <meta name="description" content="">
 | |
|         <meta name="generator" content="GitBook 3.2.3">
 | |
|         <meta name="author" content="The NATS Maintainers">
 | |
|         
 | |
|         
 | |
|     
 | |
|     <link rel="stylesheet" href="../../gitbook/style.css">
 | |
| 
 | |
|     
 | |
|             
 | |
|                 
 | |
|                 <link rel="stylesheet" href="../../gitbook/gitbook-plugin-prism/prism.css">
 | |
|                 
 | |
|             
 | |
|                 
 | |
|                 <link rel="stylesheet" href="../../gitbook/gitbook-plugin-toggle-chapters/toggle.css">
 | |
|                 
 | |
|             
 | |
|                 
 | |
|                 <link rel="stylesheet" href="../../gitbook/gitbook-plugin-anchors/plugin.css">
 | |
|                 
 | |
|             
 | |
|                 
 | |
|                 <link rel="stylesheet" href="../../gitbook/gitbook-plugin-search/search.css">
 | |
|                 
 | |
|             
 | |
|                 
 | |
|                 <link rel="stylesheet" href="../../gitbook/gitbook-plugin-fontsettings/website.css">
 | |
|                 
 | |
|             
 | |
|         
 | |
| 
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|     
 | |
|         
 | |
|     
 | |
|         
 | |
|     
 | |
|         
 | |
|     
 | |
|         
 | |
|     
 | |
|         
 | |
|     
 | |
| 
 | |
|         
 | |
| 
 | |
|     
 | |
|     
 | |
|     <meta name="HandheldFriendly" content="true"/>
 | |
|     <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
 | |
|     <meta name="apple-mobile-web-app-capable" content="yes">
 | |
|     <meta name="apple-mobile-web-app-status-bar-style" content="black">
 | |
|     <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../../gitbook/images/apple-touch-icon-precomposed-152.png">
 | |
|     <link rel="shortcut icon" href="../../gitbook/images/favicon.ico" type="image/x-icon">
 | |
| 
 | |
|     
 | |
|     <link rel="next" href="services.html" />
 | |
|     
 | |
|     
 | |
|     <link rel="prev" href="nsc.html" />
 | |
|     
 | |
| 
 | |
| <link rel="stylesheet" href="https://cdn.materialdesignicons.com/3.6.95/css/materialdesignicons.min.css">
 | |
| 
 | |
|     </head>
 | |
|     <body>
 | |
|         
 | |
| 
 | |
| <div class="book">
 | |
|     <div class="book-summary">
 | |
|         
 | |
|             
 | |
| <div id="book-search-input" role="search">
 | |
|     <input type="text" placeholder="Type to search" />
 | |
| </div>
 | |
| 
 | |
|             
 | |
|                 <nav role="navigation">
 | |
|                 
 | |
| 
 | |
| 
 | |
| <ul class="summary">
 | |
|     
 | |
|     
 | |
| 
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="1.1" data-path="../../">
 | |
|             
 | |
|                 <a href="../../">
 | |
|             
 | |
|                     
 | |
|                     Introduction
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.2" data-path="../../whats_new/whats_new_20.html">
 | |
|             
 | |
|                 <a href="../../whats_new/whats_new_20.html">
 | |
|             
 | |
|                     
 | |
|                     What's New in 2.0
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.3" data-path="../../faq.html">
 | |
|             
 | |
|                 <a href="../../faq.html">
 | |
|             
 | |
|                     
 | |
|                     FAQ
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.4" >
 | |
|             
 | |
|                 <a target="_blank" href="https://nats.io">
 | |
|             
 | |
|                     
 | |
|                     nats.io
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">Concepts</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="2.1" data-path="../../developer/concepts/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/concepts/intro.html">
 | |
|             
 | |
|                     
 | |
|                     What is NATS
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.2" data-path="../../developer/concepts/subjects.html">
 | |
|             
 | |
|                 <a href="../../developer/concepts/subjects.html">
 | |
|             
 | |
|                     
 | |
|                     Subject-Based Messaging
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.3" data-path="../../developer/concepts/pubsub.html">
 | |
|             
 | |
|                 <a href="../../developer/concepts/pubsub.html">
 | |
|             
 | |
|                     
 | |
|                     Publish-Subscribe
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.4" data-path="../../developer/concepts/reqreply.html">
 | |
|             
 | |
|                 <a href="../../developer/concepts/reqreply.html">
 | |
|             
 | |
|                     
 | |
|                     Request-Reply
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.5" data-path="../../developer/concepts/queue.html">
 | |
|             
 | |
|                 <a href="../../developer/concepts/queue.html">
 | |
|             
 | |
|                     
 | |
|                     Queue Groups
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.6" data-path="../../developer/concepts/acks.html">
 | |
|             
 | |
|                 <a href="../../developer/concepts/acks.html">
 | |
|             
 | |
|                     
 | |
|                     Acknowledgements
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.7" data-path="../../developer/concepts/seq_num.html">
 | |
|             
 | |
|                 <a href="../../developer/concepts/seq_num.html">
 | |
|             
 | |
|                     
 | |
|                     Sequence Numbers
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">Developing With NATS</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="3.1" data-path="../../developer/">
 | |
|             
 | |
|                 <a href="../../developer/">
 | |
|             
 | |
|                     
 | |
|                     Introduction
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2" data-path="../../developer/connecting/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Connecting
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.2.1" data-path="../../developer/connecting/default_server.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/default_server.html">
 | |
|             
 | |
|                     
 | |
|                     Connecting to the Default Server
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2.2" data-path="../../developer/connecting/specific_server.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/specific_server.html">
 | |
|             
 | |
|                     
 | |
|                     Connecting to a Specific Server
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2.3" data-path="../../developer/connecting/cluster.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/cluster.html">
 | |
|             
 | |
|                     
 | |
|                     Connecting to a Cluster
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2.4" data-path="../../developer/connecting/connect_timeout.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/connect_timeout.html">
 | |
|             
 | |
|                     
 | |
|                     Setting a Connect Timeout
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2.5" data-path="../../developer/connecting/pingpong.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/pingpong.html">
 | |
|             
 | |
|                     
 | |
|                     Ping/Pong Protocol
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2.6" data-path="../../developer/connecting/protocol.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/protocol.html">
 | |
|             
 | |
|                     
 | |
|                     Controlling the Client/Server Protocol
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2.7" data-path="../../developer/connecting/noecho.html">
 | |
|             
 | |
|                 <a href="../../developer/connecting/noecho.html">
 | |
|             
 | |
|                     
 | |
|                     Turning Off Echo'd Messages
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.3" data-path="../../developer/reconnect/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/reconnect/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Automatic Reconnections
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.3.1" data-path="../../developer/reconnect/disable.html">
 | |
|             
 | |
|                 <a href="../../developer/reconnect/disable.html">
 | |
|             
 | |
|                     
 | |
|                     Disabling Reconnect
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.3.2" data-path="../../developer/reconnect/max.html">
 | |
|             
 | |
|                 <a href="../../developer/reconnect/max.html">
 | |
|             
 | |
|                     
 | |
|                     Set the Number of Reconnect Attempts
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.3.3" data-path="../../developer/reconnect/wait.html">
 | |
|             
 | |
|                 <a href="../../developer/reconnect/wait.html">
 | |
|             
 | |
|                     
 | |
|                     Pausing Between Reconnect Attempts
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.3.4" data-path="../../developer/reconnect/random.html">
 | |
|             
 | |
|                 <a href="../../developer/reconnect/random.html">
 | |
|             
 | |
|                     
 | |
|                     Avoiding the Thundering Herd
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.3.5" data-path="../../developer/reconnect/events.html">
 | |
|             
 | |
|                 <a href="../../developer/reconnect/events.html">
 | |
|             
 | |
|                     
 | |
|                     Listening for Reconnect Events
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.3.6" data-path="../../developer/reconnect/buffer.html">
 | |
|             
 | |
|                 <a href="../../developer/reconnect/buffer.html">
 | |
|             
 | |
|                     
 | |
|                     Buffering Messages During Reconnect Attempts
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.4" data-path="../../developer/security/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/security/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Securing Connections
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.4.1" data-path="../../developer/security/userpass.html">
 | |
|             
 | |
|                 <a href="../../developer/security/userpass.html">
 | |
|             
 | |
|                     
 | |
|                     Authenticating with a User and Password
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.4.2" data-path="../../developer/security/token.html">
 | |
|             
 | |
|                 <a href="../../developer/security/token.html">
 | |
|             
 | |
|                     
 | |
|                     Authenticating with a Token
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.4.3" data-path="../../developer/security/nkey.html">
 | |
|             
 | |
|                 <a href="../../developer/security/nkey.html">
 | |
|             
 | |
|                     
 | |
|                     Authenticating with an NKey
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.4.4" data-path="../../developer/security/creds.html">
 | |
|             
 | |
|                 <a href="../../developer/security/creds.html">
 | |
|             
 | |
|                     
 | |
|                     Authenticating with a Credentials File
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.4.5" data-path="../../developer/security/tls.html">
 | |
|             
 | |
|                 <a href="../../developer/security/tls.html">
 | |
|             
 | |
|                     
 | |
|                     Encrypting Connections with TLS
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5" data-path="../../developer/receiving/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Receiving Messages
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.1" data-path="../../developer/receiving/sync.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/sync.html">
 | |
|             
 | |
|                     
 | |
|                     Synchronous Subscriptions
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.2" data-path="../../developer/receiving/async.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/async.html">
 | |
|             
 | |
|                     
 | |
|                     Asynchronous Subscriptions
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.3" data-path="../../developer/receiving/unsubscribing.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/unsubscribing.html">
 | |
|             
 | |
|                     
 | |
|                     Unsubscribing
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.4" data-path="../../developer/receiving/unsub_after.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/unsub_after.html">
 | |
|             
 | |
|                     
 | |
|                     Unsubscribing After N Messages
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.5" data-path="../../developer/receiving/reply.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/reply.html">
 | |
|             
 | |
|                     
 | |
|                     Replying to a Message
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.6" data-path="../../developer/receiving/wildcards.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/wildcards.html">
 | |
|             
 | |
|                     
 | |
|                     Wildcard Subscriptions
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.7" data-path="../../developer/receiving/queues.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/queues.html">
 | |
|             
 | |
|                     
 | |
|                     Queue Subscriptions
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.8" data-path="../../developer/receiving/drain.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/drain.html">
 | |
|             
 | |
|                     
 | |
|                     Draining Messages Before Disconnect
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5.9" data-path="../../developer/receiving/structure.html">
 | |
|             
 | |
|                 <a href="../../developer/receiving/structure.html">
 | |
|             
 | |
|                     
 | |
|                     Structured Data
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.6" data-path="../../developer/sending/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/sending/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Sending Messages
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.6.1" data-path="../../developer/sending/replyto.html">
 | |
|             
 | |
|                 <a href="../../developer/sending/replyto.html">
 | |
|             
 | |
|                     
 | |
|                     Including a Reply Subject
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.6.2" data-path="../../developer/sending/request_reply.html">
 | |
|             
 | |
|                 <a href="../../developer/sending/request_reply.html">
 | |
|             
 | |
|                     
 | |
|                     Request-Reply Semantics
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.6.3" data-path="../../developer/sending/caches.html">
 | |
|             
 | |
|                 <a href="../../developer/sending/caches.html">
 | |
|             
 | |
|                     
 | |
|                     Caches, Flush and Ping
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.6.4" data-path="../../developer/sending/structure.html">
 | |
|             
 | |
|                 <a href="../../developer/sending/structure.html">
 | |
|             
 | |
|                     
 | |
|                     Sending Structured Data
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.7" data-path="../../developer/events/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/events/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Monitoring the Connection
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.7.1" data-path="../../developer/events/events.html">
 | |
|             
 | |
|                 <a href="../../developer/events/events.html">
 | |
|             
 | |
|                     
 | |
|                     Listen for Connection Events
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.7.2" data-path="../../developer/events/slow.html">
 | |
|             
 | |
|                 <a href="../../developer/events/slow.html">
 | |
|             
 | |
|                     
 | |
|                     Slow Consumers
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.8" data-path="../../developer/tutorials/intro.html">
 | |
|             
 | |
|                 <a href="../../developer/tutorials/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Tutorials
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.8.1" data-path="../../developer/tutorials/pubsub.html">
 | |
|             
 | |
|                 <a href="../../developer/tutorials/pubsub.html">
 | |
|             
 | |
|                     
 | |
|                     Explore NATS Pub/Sub
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.8.2" data-path="../../developer/tutorials/reqreply.html">
 | |
|             
 | |
|                 <a href="../../developer/tutorials/reqreply.html">
 | |
|             
 | |
|                     
 | |
|                     Explore NATS Request/Reply
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.8.3" data-path="../../developer/tutorials/queues.html">
 | |
|             
 | |
|                 <a href="../../developer/tutorials/queues.html">
 | |
|             
 | |
|                     
 | |
|                     Explore NATS Queueing
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.8.4" data-path="../../developer/tutorials/custom_dialer.html">
 | |
|             
 | |
|                 <a href="../../developer/tutorials/custom_dialer.html">
 | |
|             
 | |
|                     
 | |
|                     Advanced Connect and Custom Dialer in Go
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">NATS Server</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="4.1" data-path="../../nats_server/installation.html">
 | |
|             
 | |
|                 <a href="../../nats_server/installation.html">
 | |
|             
 | |
|                     
 | |
|                     Installing
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.2" data-path="../../nats_server/running.html">
 | |
|             
 | |
|                 <a href="../../nats_server/running.html">
 | |
|             
 | |
|                     
 | |
|                     Running
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.2.1" data-path="../../nats_server/windows_srv.html">
 | |
|             
 | |
|                 <a href="../../nats_server/windows_srv.html">
 | |
|             
 | |
|                     
 | |
|                     Window Service
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.3" data-path="../../nats_server/clients.html">
 | |
|             
 | |
|                 <a href="../../nats_server/clients.html">
 | |
|             
 | |
|                     
 | |
|                     Clients
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.4" data-path="../../nats_server/flags.html">
 | |
|             
 | |
|                 <a href="../../nats_server/flags.html">
 | |
|             
 | |
|                     
 | |
|                     Flags
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5" data-path="../../nats_server/configuration.html">
 | |
|             
 | |
|                 <a href="../../nats_server/configuration.html">
 | |
|             
 | |
|                     
 | |
|                     Configuration
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1" data-path="../../nats_server/securing_nats.html">
 | |
|             
 | |
|                 <a href="../../nats_server/securing_nats.html">
 | |
|             
 | |
|                     
 | |
|                     Securing NATS
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.1" data-path="../../nats_server/tls.html">
 | |
|             
 | |
|                 <a href="../../nats_server/tls.html">
 | |
|             
 | |
|                     
 | |
|                     Enabling TLS
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2" data-path="../../nats_server/auth_intro.html">
 | |
|             
 | |
|                 <a href="../../nats_server/auth_intro.html">
 | |
|             
 | |
|                     
 | |
|                     Authentication
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2.1" data-path="../../nats_server/tokens.html">
 | |
|             
 | |
|                 <a href="../../nats_server/tokens.html">
 | |
|             
 | |
|                     
 | |
|                     Tokens
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2.2" data-path="../../nats_server/username_password.html">
 | |
|             
 | |
|                 <a href="../../nats_server/username_password.html">
 | |
|             
 | |
|                     
 | |
|                     Username/Password
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2.3" data-path="../../nats_server/tls_mutual_auth.html">
 | |
|             
 | |
|                 <a href="../../nats_server/tls_mutual_auth.html">
 | |
|             
 | |
|                     
 | |
|                     TLS Authentication
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2.4" data-path="../../nats_server/nkey_auth.html">
 | |
|             
 | |
|                 <a href="../../nats_server/nkey_auth.html">
 | |
|             
 | |
|                     
 | |
|                     NKeys
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2.5" data-path="../../nats_server/accounts.html">
 | |
|             
 | |
|                 <a href="../../nats_server/accounts.html">
 | |
|             
 | |
|                     
 | |
|                     Accounts
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2.6" data-path="../../nats_server/jwt_auth.html">
 | |
|             
 | |
|                 <a href="../../nats_server/jwt_auth.html">
 | |
|             
 | |
|                     
 | |
|                     JWTs
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.2.7" data-path="../../nats_server/auth_timeout.html">
 | |
|             
 | |
|                 <a href="../../nats_server/auth_timeout.html">
 | |
|             
 | |
|                     
 | |
|                     Authentication Timeout
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.1.3" data-path="../../nats_server/authorization.html">
 | |
|             
 | |
|                 <a href="../../nats_server/authorization.html">
 | |
|             
 | |
|                     
 | |
|                     Authorization
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.2" data-path="../../nats_server/clustering.html">
 | |
|             
 | |
|                 <a href="../../nats_server/clustering.html">
 | |
|             
 | |
|                     
 | |
|                     Clustering
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.2.1" data-path="../../nats_server/cluster_config.html">
 | |
|             
 | |
|                 <a href="../../nats_server/cluster_config.html">
 | |
|             
 | |
|                     
 | |
|                     Configuration
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.2.2" data-path="../../nats_server/cluster_tls.html">
 | |
|             
 | |
|                 <a href="../../nats_server/cluster_tls.html">
 | |
|             
 | |
|                     
 | |
|                     TLS Authentication
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.3" data-path="../../gateways/">
 | |
|             
 | |
|                 <a href="../../gateways/">
 | |
|             
 | |
|                     
 | |
|                     Gateways
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.3.1" data-path="../../gateways/gateway.html">
 | |
|             
 | |
|                 <a href="../../gateways/gateway.html">
 | |
|             
 | |
|                     
 | |
|                     Configuration
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.4" data-path="../../leafnodes/">
 | |
|             
 | |
|                 <a href="../../leafnodes/">
 | |
|             
 | |
|                     
 | |
|                     Leaf Nodes
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.4.1" data-path="../../leafnodes/leafnode_conf.html">
 | |
|             
 | |
|                 <a href="../../leafnodes/leafnode_conf.html">
 | |
|             
 | |
|                     
 | |
|                     Configuration
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.5" data-path="../../nats_server/logging.html">
 | |
|             
 | |
|                 <a href="../../nats_server/logging.html">
 | |
|             
 | |
|                     
 | |
|                     Logging
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5.6" data-path="../../nats_server/monitoring.html">
 | |
|             
 | |
|                 <a href="../../nats_server/monitoring.html">
 | |
|             
 | |
|                     
 | |
|                     Monitoring
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.6" data-path="../../nats_admin/">
 | |
|             
 | |
|                 <a href="../../nats_admin/">
 | |
|             
 | |
|                     
 | |
|                     Managing A NATS Server
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.6.1" data-path="../../nats_admin/upgrading_cluster.html">
 | |
|             
 | |
|                 <a href="../../nats_admin/upgrading_cluster.html">
 | |
|             
 | |
|                     
 | |
|                     Upgrading a Cluster
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.6.2" data-path="../../nats_admin/slow_consumers.html">
 | |
|             
 | |
|                 <a href="../../nats_admin/slow_consumers.html">
 | |
|             
 | |
|                     
 | |
|                     Slow Consumers
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.6.3" data-path="../../nats_admin/signals.html">
 | |
|             
 | |
|                 <a href="../../nats_admin/signals.html">
 | |
|             
 | |
|                     
 | |
|                     Signals
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.6.4" data-path="../../sys_accounts/">
 | |
|             
 | |
|                 <a href="../../sys_accounts/">
 | |
|             
 | |
|                     
 | |
|                     System Accounts
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.6.4.1" data-path="../../sys_accounts/sys_accounts.html">
 | |
|             
 | |
|                 <a href="../../sys_accounts/sys_accounts.html">
 | |
|             
 | |
|                     
 | |
|                     Configuration
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.7" data-path="../../nats_docker/">
 | |
|             
 | |
|                 <a href="../../nats_docker/">
 | |
|             
 | |
|                     
 | |
|                     NATS and Docker
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.7.1" data-path="../../nats_docker/nats-docker-tutorial.html">
 | |
|             
 | |
|                 <a href="../../nats_docker/nats-docker-tutorial.html">
 | |
|             
 | |
|                     
 | |
|                     Tutorial
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.7.2" data-path="../../nats_docker/docker_swarm.html">
 | |
|             
 | |
|                 <a href="../../nats_docker/docker_swarm.html">
 | |
|             
 | |
|                     
 | |
|                     Docker Swarm
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">NATS Tools</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="5.1" data-path="../mkpasswd.html">
 | |
|             
 | |
|                 <a href="../mkpasswd.html">
 | |
|             
 | |
|                     
 | |
|                     mkpasswd
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.2" data-path="../nk.html">
 | |
|             
 | |
|                 <a href="../nk.html">
 | |
|             
 | |
|                     
 | |
|                     nk
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.3" data-path="./">
 | |
|             
 | |
|                 <a href="./">
 | |
|             
 | |
|                     
 | |
|                     nsc
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="5.3.1" data-path="nsc.html">
 | |
|             
 | |
|                 <a href="nsc.html">
 | |
|             
 | |
|                     
 | |
|                     Basics
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter active" data-level="5.3.2" data-path="streams.html">
 | |
|             
 | |
|                 <a href="streams.html">
 | |
|             
 | |
|                     
 | |
|                     Streams
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.3.3" data-path="services.html">
 | |
|             
 | |
|                 <a href="services.html">
 | |
|             
 | |
|                     
 | |
|                     Services
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.3.4" data-path="signing_keys.html">
 | |
|             
 | |
|                 <a href="signing_keys.html">
 | |
|             
 | |
|                     
 | |
|                     Signing Keys
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.4" data-path="../nas/">
 | |
|             
 | |
|                 <a href="../nas/">
 | |
|             
 | |
|                     
 | |
|                     nats-account-server
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="5.4.1" data-path="../nas/nas_conf.html">
 | |
|             
 | |
|                 <a href="../nas/nas_conf.html">
 | |
|             
 | |
|                     
 | |
|                     Basics
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.4.2" data-path="../nas/inspecting_jwts.html">
 | |
|             
 | |
|                 <a href="../nas/inspecting_jwts.html">
 | |
|             
 | |
|                     
 | |
|                     Inspecting JWTs
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.4.3" data-path="../nas/dir_store.html">
 | |
|             
 | |
|                 <a href="../nas/dir_store.html">
 | |
|             
 | |
|                     
 | |
|                     Directory Store
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.4.4" data-path="../nas/notifications.html">
 | |
|             
 | |
|                 <a href="../nas/notifications.html">
 | |
|             
 | |
|                     
 | |
|                     Update Notifications
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.4.5" data-path="../nas/mem_resolver.html">
 | |
|             
 | |
|                 <a href="../nas/mem_resolver.html">
 | |
|             
 | |
|                     
 | |
|                     Memory Resolver
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.5" data-path="../nats_top/">
 | |
|             
 | |
|                 <a href="../nats_top/">
 | |
|             
 | |
|                     
 | |
|                     nats-top
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="5.5.1" data-path="../nats_top/nats-top-tutorial.html">
 | |
|             
 | |
|                 <a href="../nats_top/nats-top-tutorial.html">
 | |
|             
 | |
|                     
 | |
|                     Tutorial
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.6" data-path="../natsbench.html">
 | |
|             
 | |
|                 <a href="../natsbench.html">
 | |
|             
 | |
|                     
 | |
|                     nats-bench
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">NATS Streaming Concepts</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="6.1" data-path="../../nats_streaming/intro.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/intro.html">
 | |
|             
 | |
|                     
 | |
|                     Introduction
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.2" data-path="../../nats_streaming/relation-to-nats.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/relation-to-nats.html">
 | |
|             
 | |
|                     
 | |
|                     Relation to NATS
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.3" data-path="../../nats_streaming/client-connections.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/client-connections.html">
 | |
|             
 | |
|                     
 | |
|                     Client Connections
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.4" data-path="../../nats_streaming/channels/channels.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/channels/channels.html">
 | |
|             
 | |
|                     
 | |
|                     Channels
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="6.4.1" data-path="../../nats_streaming/channels/message-log.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/channels/message-log.html">
 | |
|             
 | |
|                     
 | |
|                     Message Log
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.4.2" data-path="../../nats_streaming/channels/subscriptions/subscriptions.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/channels/subscriptions/subscriptions.html">
 | |
|             
 | |
|                     
 | |
|                     Subscriptions
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="6.4.2.1" data-path="../../nats_streaming/channels/subscriptions/regular.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/channels/subscriptions/regular.html">
 | |
|             
 | |
|                     
 | |
|                     Regular
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.4.2.2" data-path="../../nats_streaming/channels/subscriptions/durable.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/channels/subscriptions/durable.html">
 | |
|             
 | |
|                     
 | |
|                     Durable
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.4.2.3" data-path="../../nats_streaming/channels/subscriptions/queue-group.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/channels/subscriptions/queue-group.html">
 | |
|             
 | |
|                     
 | |
|                     Queue Group
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.4.2.4" data-path="../../nats_streaming/channels/subscriptions/redelivery.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/channels/subscriptions/redelivery.html">
 | |
|             
 | |
|                     
 | |
|                     Redelivery
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.5" data-path="../../nats_streaming/store-interface.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/store-interface.html">
 | |
|             
 | |
|                     
 | |
|                     Store Interface
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.6" data-path="../../nats_streaming/store-encryption.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/store-encryption.html">
 | |
|             
 | |
|                     
 | |
|                     Store Encryption
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.7" data-path="../../nats_streaming/clustering/clustering.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/clustering/clustering.html">
 | |
|             
 | |
|                     
 | |
|                     Clustering
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="6.7.1" data-path="../../nats_streaming/clustering/supported-stores.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/clustering/supported-stores.html">
 | |
|             
 | |
|                     
 | |
|                     Supported Stores
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.7.2" data-path="../../nats_streaming/clustering/configuration.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/clustering/configuration.html">
 | |
|             
 | |
|                     
 | |
|                     Configuration
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.7.3" data-path="../../nats_streaming/clustering/auto-configuration.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/clustering/auto-configuration.html">
 | |
|             
 | |
|                     
 | |
|                     Auto Configuration
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.7.4" data-path="../../nats_streaming/clustering/containers.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/clustering/containers.html">
 | |
|             
 | |
|                     
 | |
|                     Containers
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.8" data-path="../../nats_streaming/fault-tolerance/ft.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/fault-tolerance/ft.html">
 | |
|             
 | |
|                     
 | |
|                     Fault Tolerance
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="6.8.1" data-path="../../nats_streaming/fault-tolerance/active-server.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/fault-tolerance/active-server.html">
 | |
|             
 | |
|                     
 | |
|                     Active Server
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.8.2" data-path="../../nats_streaming/fault-tolerance/standby-server.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/fault-tolerance/standby-server.html">
 | |
|             
 | |
|                     
 | |
|                     Standby Servers
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.8.3" data-path="../../nats_streaming/fault-tolerance/shared-state.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/fault-tolerance/shared-state.html">
 | |
|             
 | |
|                     
 | |
|                     Shared State
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.8.4" data-path="../../nats_streaming/fault-tolerance/failover.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/fault-tolerance/failover.html">
 | |
|             
 | |
|                     
 | |
|                     Failover
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.9" data-path="../../nats_streaming/partitioning.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/partitioning.html">
 | |
|             
 | |
|                     
 | |
|                     Partitioning
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.10" data-path="../../nats_streaming/monitoring/monitoring.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/monitoring/monitoring.html">
 | |
|             
 | |
|                     
 | |
|                     Monitoring
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="6.10.1" data-path="../../nats_streaming/monitoring/endpoints.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/monitoring/endpoints.html">
 | |
|             
 | |
|                     
 | |
|                     Endpoints
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">Developing With NATS Streaming</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="7.1" data-path="../../developer/streaming/">
 | |
|             
 | |
|                 <a href="../../developer/streaming/">
 | |
|             
 | |
|                     
 | |
|                     Introduction
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.2" data-path="../../developer/streaming/connecting.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/connecting.html">
 | |
|             
 | |
|                     
 | |
|                     Connecting to NATS Streaming
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.3" data-path="../../developer/streaming/publishing.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/publishing.html">
 | |
|             
 | |
|                     
 | |
|                     Publishing to a Channel
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.4" data-path="../../developer/streaming/receiving.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/receiving.html">
 | |
|             
 | |
|                     
 | |
|                     Receiving Messages from a Channel
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.5" data-path="../../developer/streaming/durables.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/durables.html">
 | |
|             
 | |
|                     
 | |
|                     Durable Subscriptions
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.6" data-path="../../developer/streaming/queues.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/queues.html">
 | |
|             
 | |
|                     
 | |
|                     Queue Subscriptions
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.7" data-path="../../developer/streaming/acks.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/acks.html">
 | |
|             
 | |
|                     
 | |
|                     Acknowledgements
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.8" data-path="../../developer/streaming/protocol.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/protocol.html">
 | |
|             
 | |
|                     
 | |
|                     The Streaming Protocol
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">NATS Streaming Server</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="8.1" data-path="../../nats_streaming/gettingstarted/changes.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/gettingstarted/changes.html">
 | |
|             
 | |
|                     
 | |
|                     Important Changes
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.2" data-path="../../nats_streaming/gettingstarted/install.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/gettingstarted/install.html">
 | |
|             
 | |
|                     
 | |
|                     Installing
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.3" data-path="../../nats_streaming/gettingstarted/run.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/gettingstarted/run.html">
 | |
|             
 | |
|                     
 | |
|                     Running
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4" data-path="../../nats_streaming/configuring/configuring.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/configuring.html">
 | |
|             
 | |
|                     
 | |
|                     Configuring
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.1" data-path="../../nats_streaming/configuring/cmdline.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/cmdline.html">
 | |
|             
 | |
|                     
 | |
|                     Command line arguments
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.2" data-path="../../nats_streaming/configuring/cfgfile.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/cfgfile.html">
 | |
|             
 | |
|                     
 | |
|                     Configuration file
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.3" data-path="../../nats_streaming/configuring/storelimits.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/storelimits.html">
 | |
|             
 | |
|                     
 | |
|                     Store Limits
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.3.1" data-path="../../nats_streaming/configuring/storelimits.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/storelimits.html#limits-inheritance">
 | |
|             
 | |
|                     
 | |
|                     Limits inheritance
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.4" data-path="../../nats_streaming/configuring/persistence.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/persistence.html">
 | |
|             
 | |
|                     
 | |
|                     Persistence
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.4.1" data-path="../../nats_streaming/configuring/filestore.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/filestore.html">
 | |
|             
 | |
|                     
 | |
|                     File Store
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.4.1.1" data-path="../../nats_streaming/configuring/filestore.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/filestore.html#options">
 | |
|             
 | |
|                     
 | |
|                     Options
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.4.1.2" data-path="../../nats_streaming/configuring/filestore.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/filestore.html#recovery-errors">
 | |
|             
 | |
|                     
 | |
|                     Recovery Errors
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.4.2" data-path="../../nats_streaming/configuring/sqlstore.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/sqlstore.html">
 | |
|             
 | |
|                     
 | |
|                     SQL Store
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.4.2.1" data-path="../../nats_streaming/configuring/sqlstore.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/sqlstore.html#read-and-write-timeouts">
 | |
|             
 | |
|                     
 | |
|                     Read and Write Timeouts
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.4.2.2" data-path="../../nats_streaming/configuring/sqlstore.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/sqlstore.html#options">
 | |
|             
 | |
|                     
 | |
|                     Options
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.5" data-path="../../nats_streaming/configuring/tls.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/tls.html">
 | |
|             
 | |
|                     
 | |
|                     Securing
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.5.1" data-path="../../nats_streaming/configuring/tls.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/tls.html#authenticating-users">
 | |
|             
 | |
|                     
 | |
|                     Authenticating Users
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4.5.2" data-path="../../nats_streaming/configuring/tls.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/configuring/tls.html#using-tls">
 | |
|             
 | |
|                     
 | |
|                     TLS
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.5" data-path="../../nats_streaming/gettingstarted/process-signaling.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/gettingstarted/process-signaling.html">
 | |
|             
 | |
|                     
 | |
|                     Process Signaling
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.6" data-path="../../nats_streaming/gettingstarted/windows-service.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/gettingstarted/windows-service.html">
 | |
|             
 | |
|                     
 | |
|                     Windows Service
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.7" data-path="../../developer/streaming/embedding.html">
 | |
|             
 | |
|                 <a href="../../developer/streaming/embedding.html">
 | |
|             
 | |
|                     
 | |
|                     Embedding NATS Streaming Server
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.8" data-path="../../nats_streaming/swarm.html">
 | |
|             
 | |
|                 <a href="../../nats_streaming/swarm.html">
 | |
|             
 | |
|                     
 | |
|                     Docker Swarm
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
|         
 | |
|         <li class="header">NATS Protocol</li>
 | |
|         
 | |
|         
 | |
|     
 | |
|         <li class="chapter " data-level="9.1" data-path="../../nats_protocol/nats-protocol-demo.html">
 | |
|             
 | |
|                 <a href="../../nats_protocol/nats-protocol-demo.html">
 | |
|             
 | |
|                     
 | |
|                     Protocol Demo
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.2" data-path="../../nats_protocol/nats-protocol.html">
 | |
|             
 | |
|                 <a href="../../nats_protocol/nats-protocol.html">
 | |
|             
 | |
|                     
 | |
|                     Client Protocol
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="9.2.1" data-path="../../nats_protocol/nats-client-dev.html">
 | |
|             
 | |
|                 <a href="../../nats_protocol/nats-client-dev.html">
 | |
|             
 | |
|                     
 | |
|                     Developing a Client
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.3" data-path="../../nats_protocol/nats-server-protocol.html">
 | |
|             
 | |
|                 <a href="../../nats_protocol/nats-server-protocol.html">
 | |
|             
 | |
|                     
 | |
|                     NATS Cluster Protocol
 | |
|             
 | |
|                 </a>
 | |
|             
 | |
| 
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|     
 | |
| 
 | |
|     <li class="divider"></li>
 | |
| 
 | |
|     <li>
 | |
|         <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
 | |
|             Published with GitBook
 | |
|         </a>
 | |
|     </li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
|                 </nav>
 | |
|             
 | |
|         
 | |
|     </div>
 | |
| 
 | |
|     <div class="book-body">
 | |
|         
 | |
|             <div class="body-inner">
 | |
|                 
 | |
|                     
 | |
| 
 | |
| <div class="book-header" role="navigation">
 | |
|     
 | |
| 
 | |
|     <!-- Title -->
 | |
|     <h1>
 | |
|         <i class="fa fa-circle-o-notch fa-spin"></i>
 | |
|         <a href="../.." >Streams</a>
 | |
|     </h1>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|                     <div class="page-wrapper" tabindex="-1" role="main">
 | |
|                         <div class="page-inner">
 | |
|                             
 | |
| <div id="book-search-results">
 | |
|     <div class="search-noresults">
 | |
|     
 | |
|                                 <section class="normal markdown-section">
 | |
|                                 
 | |
|                                 <h2 id="streams"><a name="streams" class="plugin-anchor" href="#streams"><i class="fa fa-link" aria-hidden="true"></i></a>Streams</h2>
 | |
| <p>To share messages you publish with other accounts, you have to <em>Export</em> a <em>Stream</em>. <em>Exports</em> are associated with the account performing the export and advertised in exporting account’s JWT.</p>
 | |
| <h3 id="adding-a-public-stream-export"><a name="adding-a-public-stream-export" class="plugin-anchor" href="#adding-a-public-stream-export"><i class="fa fa-link" aria-hidden="true"></i></a>Adding a Public Stream Export</h3>
 | |
| <p>To add a stream to your account:</p>
 | |
| <pre class="language-"><code class="lang-text">> nsc add export --name "abc" --subject "a.b.c.>"
 | |
| Success! - added public stream export "abc"
 | |
| </code></pre>
 | |
| <blockquote>
 | |
| <p>Note that we have exported stream with a subject that contains a wildcard. Any subject that matches the pattern will be exported.</p>
 | |
| </blockquote>
 | |
| <p>To check that the export is how you intended:</p>
 | |
| <pre class="language-"><code class="lang-text">> 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    │
 | |
| ╰──────┴─────────┴─────────┴────────╯
 | |
| </code></pre>
 | |
| <p>Messages this account publishes on <code>a.b.c.></code> will be forwarded to all accounts that import this stream.</p>
 | |
| <h3 id="importing-a-stream"><a name="importing-a-stream" class="plugin-anchor" href="#importing-a-stream"><i class="fa fa-link" aria-hidden="true"></i></a>Importing a Stream</h3>
 | |
| <p>Importing a stream enables you to receive messages that are published by a different <em>Account</em>. To import a Stream, you have to create an <em>Import</em>. To create an <em>Import</em> you need to know:</p>
 | |
| <ul>
 | |
| <li>The exporting account’s public key</li>
 | |
| <li>The subject where the stream is published</li>
 | |
| <li>You can map the stream’s subject to a different subject</li>
 | |
| <li>Self-imports are not valid; you can only import streams from other accounts.</li>
 | |
| </ul>
 | |
| <p>To learn how to inspect a JWT from an account server, <a href="../nas/inspecting_jwts.html">check this article</a>.</p>
 | |
| <p>With the required information, we can add an import to the public stream.</p>
 | |
| <pre class="language-"><code class="lang-text">> nsc add import --src-account AC7PO3MREV26U3LFZFP5BN3HAI32X3PKLBRVMPAETLEHWPQEUG7EJY4H --remote-subject "a.b.c.>" --local-subject "abc.>"
 | |
| Success! - added stream import "a.b.c.>"
 | |
| </code></pre>
 | |
| <blockquote>
 | |
| <p>Note we did fancy things here: The remote stream publishes messages as <code>a.b.c.></code>, but we changed the prefix to be something else in the importing account’s subject space. We changed it to <code>abc.></code>. Subscribers in our account can listen to <code>abc.></code> to get the messages. The message will be delivered as <code>abc.a.b.c.></code>.</p>
 | |
| </blockquote>
 | |
| <p>And verifying it:</p>
 | |
| <pre class="language-"><code class="lang-text">> 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    │
 | |
| ╰───────┴────────┴─────────┴───────┴─────────┴──────────────┴────────╯
 | |
| </code></pre>
 | |
| <h2 id="securing-streams"><a name="securing-streams" class="plugin-anchor" href="#securing-streams"><i class="fa fa-link" aria-hidden="true"></i></a>Securing Streams</h2>
 | |
| <p>If you want to create a stream that is only accessible to accounts you designate you can create a <em>private</em> stream. The export will be visible in your account, but <em>subscribing</em> accounts will require an authorization token that must be created by you and generated specifically for the subscribing account.</p>
 | |
| <p>The authorization token is simply a JWT signed by your account where you authorize the client account to import your export.</p>
 | |
| <h3 id="creating-a-private-stream-export"><a name="creating-a-private-stream-export" class="plugin-anchor" href="#creating-a-private-stream-export"><i class="fa fa-link" aria-hidden="true"></i></a>Creating a Private Stream Export</h3>
 | |
| <pre class="language-"><code class="lang-text">> nsc add export --name pabc --subject "a.b.c.>" --private
 | |
| Success! - added private stream export "pabc"
 | |
| </code></pre>
 | |
| <p>Like before we defined an export, but this time we added the <code>--private</code> flag.</p>
 | |
| <pre class="language-"><code class="lang-text">> 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     │
 | |
| ╰──────┴────────┴─────────┴────────╯
 | |
| </code></pre>
 | |
| <h3 id="generating-an-activation-token"><a name="generating-an-activation-token" class="plugin-anchor" href="#generating-an-activation-token"><i class="fa fa-link" aria-hidden="true"></i></a>Generating an Activation Token</h3>
 | |
| <p>For a foreign account to <em>import</em> 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.</p>
 | |
| <p>Let’s create an account and user for our stream client:</p>
 | |
| <pre class="language-"><code class="lang-text">> 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”
 | |
| </code></pre>
 | |
| <p>To generate a token, you’ll need to know the public key of the account importing the stream.</p>
 | |
| <pre class="language-"><code class="lang-text">> nsc generate activation -o /tmp/activation.jwt --target-account AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4 —subject a.b.c.d    
 | |
| generated "pabc" activation for account "AAL5Q2B3SMSO5AS3APJFUNAIKUCEQJPAQ76XEBTVOCQCXXGKP3YMGGN4".
 | |
| JTI is "VNT3Y32I5FNTEHIVL6PINEJNNZ6Z2BGGEJ2QWNA3TPQ4A4KBRGHQ"
 | |
| </code></pre>
 | |
| <p>In the above invocation, we generated an activation redirecting the output to <code>/tmp/activation.jwt</code>. The exporting account exported <code>a.b.c.></code>, but on the activation token will only grant permission to <code>a.b.c.d</code> to the target account.</p>
 | |
| <p>For completeness, the contents of the JWT file look like this:</p>
 | |
| <pre class="language-"><code class="lang-text">> cat /tmp/activation.jwt
 | |
| -----BEGIN NATS ACTIVATION JWT-----
 | |
| eyJ0eXAiOiJqd3QiLCJhbGciOiJlZDI1NTE5In0.eyJqdGkiOiJWTlQzWTMySTVGTlRFSElWTDZQSU5FSk5OWjZaMkJHR0VKMlFXTkEzVFBRNEE0S0JSR0hRIiwiaWF0IjoxNTU2MjI5NDk0LCJpc3MiOiJBQzdQTzNNUkVWMjZVM0xGWkZQNUJOM0hBSTMyWDNQS0xCUlZNUEFFVExFSFdQUUVVRzdFSlk0SCIsIm5hbWUiOiJhLmIuYy5kIiwic3ViIjoiQUFMNVEyQjNTTVNPNUFTM0FQSkZVTkFJS1VDRVFKUEFRNzZYRUJUVk9DUUNYWEdLUDNZTUdHTjQiLCJ0eXBlIjoiYWN0aXZhdGlvbiIsIm5hdHMiOnsic3ViamVjdCI6ImEuYi5jLmQiLCJ0eXBlIjoic3RyZWFtIn19.eA0W-mcxFXyIpEk0MUgaLjj7t5jxEHTar7MNY5IYcJ7NHlDoHU5IFog2LlFW_hpTCFA4qa989vqECsiTuBuCAA
 | |
| ------END NATS ACTIVATION JWT------
 | |
| </code></pre>
 | |
| <p>When decoded it looks like this:</p>
 | |
| <pre class="language-"><code class="lang-text">> 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                     │
 | |
| ╰─────────────────┴─────────────────────────╯
 | |
| </code></pre>
 | |
| <p>The token can be shared directly with the client account. </p>
 | |
| <blockquote>
 | |
| <p>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.</p>
 | |
| </blockquote>
 | |
| <h2 id="importing-a-private-stream"><a name="importing-a-private-stream" class="plugin-anchor" href="#importing-a-private-stream"><i class="fa fa-link" aria-hidden="true"></i></a>Importing a Private Stream</h2>
 | |
| <p>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.</p>
 | |
| <pre class="language-"><code class="lang-text">> nsc add import --token /tmp/activation.jwt 
 | |
| Success! - added stream import "a.b.c.d"
 | |
| </code></pre>
 | |
| <pre class="language-"><code class="lang-text">> 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     │
 | |
| ╰─────────┴────────┴─────────┴─────────┴─────────┴──────────────┴────────╯
 | |
| </code></pre>
 | |
| <h3 id="testing-the-private-stream"><a name="testing-the-private-stream" class="plugin-anchor" href="#testing-the-private-stream"><i class="fa fa-link" aria-hidden="true"></i></a>Testing the Private Stream</h3>
 | |
| <p>Start the <code>nats-account-server</code>:</p>
 | |
| <pre class="language-"><code class="lang-text">  > nats-account-server -nsc ~/.nsc/nats/Test
 | |
| </code></pre>
 | |
| <p>Create a config for the nats server <code>server.conf</code>:</p>
 | |
| <pre class="language-"><code class="lang-text">operator: /Users/synadia/.nsc/nats/Test/Test.jwt
 | |
| resolver: URL(http://localhost:9090/jwt/v1/accounts/)
 | |
| </code></pre>
 | |
| <p>Start the <code>nats-server</code>:</p>
 | |
| <pre class="language-"><code class="lang-text">> nats-server -c server.conf
 | |
| </code></pre>
 | |
| <p>Start the subscriber for the client account:</p>
 | |
| <pre class="language-"><code class="lang-text">> nats-sub -creds ~/.nkeys/Test/accounts/AccountB/users/userb.creds ">"
 | |
| Listening on [>]
 | |
| </code></pre>
 | |
| <p>Publish messages to the stream:</p>
 | |
| <pre class="language-"><code class="lang-text"># 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'
 | |
| </code></pre>
 | |
| <p>The subscriber as expected prints a message on the stream that it was allowed to receive:</p>
 | |
| <pre class="language-"><code class="lang-text">[#1] Received on [a.b.c.d.a.b.c.d]: 'hello'
 | |
| </code></pre>
 | |
| 
 | |
|                                 
 | |
|                                 </section>
 | |
|                             
 | |
|     </div>
 | |
|     <div class="search-results">
 | |
|         <div class="has-results">
 | |
|             
 | |
|             <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
 | |
|             <ul class="search-results-list"></ul>
 | |
|             
 | |
|         </div>
 | |
|         <div class="no-results">
 | |
|             
 | |
|             <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
 | |
|             
 | |
|         </div>
 | |
|     </div>
 | |
| </div>
 | |
| 
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 
 | |
|             </div>
 | |
| 
 | |
|             
 | |
|                 
 | |
|                 <a href="nsc.html" class="navigation navigation-prev " aria-label="Previous page: Basics">
 | |
|                     <i class="fa fa-angle-left"></i>
 | |
|                 </a>
 | |
|                 
 | |
|                 
 | |
|                 <a href="services.html" class="navigation navigation-next " aria-label="Next page: Services">
 | |
|                     <i class="fa fa-angle-right"></i>
 | |
|                 </a>
 | |
|                 
 | |
|             
 | |
|         
 | |
|     </div>
 | |
| 
 | |
|     <script>
 | |
|         var gitbook = gitbook || [];
 | |
|         gitbook.push(function() {
 | |
|             gitbook.page.hasChanged({"page":{"title":"Streams","level":"5.3.2","depth":2,"next":{"title":"Services","level":"5.3.3","depth":2,"path":"nats_tools/nsc/services.md","ref":"nats_tools/nsc/services.md","articles":[]},"previous":{"title":"Basics","level":"5.3.1","depth":2,"path":"nats_tools/nsc/nsc.md","ref":"nats_tools/nsc/nsc.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_tools/nsc/streams.md","mtime":"2019-05-30T22:52:52.334Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-05T21:19:53.626Z"},"basePath":"../..","book":{"language":""}});
 | |
|         });
 | |
|     </script>
 | |
| </div>
 | |
| 
 | |
| <!-- Viz Support -->
 | |
| <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/viz.js"> </script>
 | |
| <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/lite.render.js"> </script>
 | |
| 
 | |
| <!-- Site code -->
 | |
| <script>
 | |
|     function flash(elem, text, speed) {
 | |
|         if (!elem) {
 | |
|             return;
 | |
|         }
 | |
|         var s = elem.style;
 | |
|         elem.textContent = text;
 | |
|         s.display = 'block';
 | |
|         s.opacity = 1;
 | |
|         (function fade() {
 | |
|             (s.opacity -= .1) < .1 ? s.display = "none" : setTimeout(fade, speed)
 | |
|         })();
 | |
|     }
 | |
| 
 | |
|     function copyToClipboard(text, el) {
 | |
|         var copyTest = document.queryCommandSupported('copy');
 | |
|         var elOriginalText = el.getAttribute('data-original-title');
 | |
| 
 | |
|         if (copyTest === true) {
 | |
|             var copyTextArea = document.createElement("textarea");
 | |
|             copyTextArea.value = text;
 | |
|             document.body.appendChild(copyTextArea);
 | |
|             copyTextArea.select();
 | |
|             try {
 | |
|                 var successful = document.execCommand('copy');
 | |
|                 var msg = successful ? 'Copied!' : 'Whoops, not copied!';
 | |
|                 var parent = el.parentNode.parentNode;
 | |
|                 var msgElem = parent.querySelector(".copy-msg");
 | |
|                 flash(msgElem, msg, 100);
 | |
|             } catch (err) {
 | |
|                 console.log('Oops, unable to copy', err);
 | |
|             }
 | |
|             document.body.removeChild(copyTextArea);
 | |
|             el.setAttribute('data-original-title', elOriginalText);
 | |
|         } else {
 | |
|             // Fallback if browser doesn't support .execCommand('copy')
 | |
|             window.prompt("Copy to clipboard: Ctrl+C or Command+C, Enter", text);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function processGraphVizSections(elements) {
 | |
|         var elements = document.querySelectorAll("[data-viz]");
 | |
|         var viz = new Viz();
 | |
|         Array.prototype.forEach.call(elements, function (x) {
 | |
|             var engine = x.getAttribute("data-viz");
 | |
|             var image = viz.renderImageElement(x.innerText, {
 | |
|                 format: "png",
 | |
|                 engine: engine
 | |
|             }).then(function (element) {
 | |
|                 x.parentNode.insertBefore(element, x);
 | |
|             });
 | |
|         });
 | |
| 
 | |
| 
 | |
|     };
 | |
| 
 | |
|     function updateLanguageParameter(value) {
 | |
|         const param = "lang";
 | |
| 
 | |
|         if (window.location.href.indexOf("?") >= 0) {
 | |
|             const regExp = new RegExp(param + "(.+?)(&|$)", "g");
 | |
|             const newUrl = window.location.href.replace(regExp, param + "=" + encodeURIComponent(value) + "$2");
 | |
|             window.history.pushState("", "", newUrl);
 | |
|         } else {
 | |
|             const newUrl = window.location.href + "?" + param + "=" + encodeURIComponent(value);
 | |
|             window.history.pushState("", "", newUrl);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function getLanguageParameter() {
 | |
|         var match = RegExp('[?&]lang=([^&]*)').exec(window.location.search);
 | |
|         return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
 | |
|     }
 | |
| 
 | |
|     function docReady() {
 | |
|         window.gitbook.events.bind("page.change", function () {
 | |
|             pageChanged();
 | |
|         });
 | |
| 
 | |
|         var searchInput = document.querySelector('#book-search-input input');
 | |
| 
 | |
|         if (searchInput) {
 | |
|             searchInput.addEventListener('keyup', function(event) {
 | |
|                 if (event.keyCode === 13) {
 | |
|                     event.target.blur();
 | |
|                 }
 | |
|             });
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function pageChanged() {
 | |
|         var logos = document.querySelectorAll(".nats");
 | |
|         if (logos && logos.length == 0) {
 | |
|             gitbook.toolbar.createButton({
 | |
|                 icon: 'nats',
 | |
|                 label: 'NATS Home Page',
 | |
|                 position: 'right',
 | |
|                 onClick: function () {
 | |
|                     var win = window.open("https://nats.io/", '_blank');
 | |
|                     win.focus();
 | |
|                 }
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         document.querySelectorAll('.js-copy').forEach(elem => {
 | |
|             elem.addEventListener("click", function () {
 | |
|                 var el = this;
 | |
|                 var parent = this.parentNode.parentNode;
 | |
|                 var code = parent.querySelector('code');
 | |
|                 var text = code.textContent || code.innerText;
 | |
|                 copyToClipboard(text, el);
 | |
|             })
 | |
|         });
 | |
| 
 | |
|         document.querySelectorAll('.api-lang').forEach(elem => {
 | |
|             elem.addEventListener("click", function () {
 | |
|                 var curLang = sessionStorage.getItem('nats-api-language');
 | |
|                 var lang = this.getAttribute('data-language');
 | |
| 
 | |
|                 // Stop the infinite loop
 | |
|                 if (curLang == lang) {
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
|                 sessionStorage.setItem('nats-api-language', lang); // So we only do this 1x
 | |
| 
 | |
|                 updateLanguageParameter(lang)
 | |
| 
 | |
|                 document.querySelectorAll('.api-lang[data-language=' + lang + ']').forEach(elem => {
 | |
|                     elem.click();
 | |
|                 });
 | |
|             })
 | |
|         });
 | |
| 
 | |
|         if (sessionStorage) {
 | |
|             var curLang = sessionStorage.getItem('nats-api-language');
 | |
|             var queryLang = getLanguageParameter();
 | |
|             var lang = curLang;
 | |
| 
 | |
|             if (queryLang) { // query takes precedent
 | |
|                 lang = queryLang
 | |
|             }
 | |
| 
 | |
|             if (lang) {
 | |
|                 document.querySelectorAll('.api-lang[data-language=' + lang + ']').forEach(elem => {
 | |
|                     elem.click();
 | |
|                 });
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         setTimeout(function () {
 | |
|             processGraphVizSections();
 | |
|         }, 1);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     if (document.readyState != 'loading') docReady();
 | |
|     else if (document.addEventListener) document.addEventListener('DOMContentLoaded', docReady);
 | |
|     else document.attachEvent('onreadystatechange', function () {
 | |
|         if (document.readyState == 'complete') docReady();
 | |
|     });
 | |
| </script>
 | |
| 
 | |
| <!-- Github Buttons -->
 | |
| <script async defer src="https://buttons.github.io/buttons.js"></script>
 | |
| 
 | |
| <!-- Styles -->
 | |
| <style>
 | |
|     .nats {
 | |
|         display: inline-block;
 | |
|         width: 16px;
 | |
|         height: 16px;
 | |
|         background: url(https://nats.io/img/nats-icon-color.svg);
 | |
|         background-size: 16px 16px;
 | |
|         background-repeat: no-repeat;
 | |
|     }
 | |
| 
 | |
|     div.graphviz {
 | |
|         background: transparent;
 | |
|         border: 0;
 | |
|         padding-top: 15px;
 | |
|         padding-right: 15px;
 | |
|         padding-bottom: 25px;
 | |
|         padding-left: 15px;
 | |
|         text-align: center;
 | |
|     }
 | |
| 
 | |
|     code[data-viz] {
 | |
|         display: none;
 | |
|     }
 | |
| 
 | |
|     .tab-wrap {
 | |
|         transition: 0.3s box-shadow ease;
 | |
|         border-radius: 6px;
 | |
|         max-width: 100%;
 | |
|         display: flex;
 | |
|         flex-wrap: wrap;
 | |
|         position: relative;
 | |
|         list-style: none;
 | |
|         background-color: #fff;
 | |
|         margin: 20px 0;
 | |
|         /* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);*/
 | |
|     }
 | |
| 
 | |
|     .tab-wrap:hover {
 | |
|         box-shadow: 0 12px 23px rgba(0, 0, 0, 0.23), 0 10px 10px rgba(0, 0, 0, 0.19);
 | |
|     }
 | |
| 
 | |
|     .tab {
 | |
|         display: none;
 | |
|     }
 | |
| 
 | |
|     /* Using scss these would be generated, we have to manually create enough for all tabs, start with 8 */
 | |
|     .tab:checked:nth-of-type(1)~.tab__content:nth-of-type(1) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked:nth-of-type(2)~.tab__content:nth-of-type(2) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked:nth-of-type(3)~.tab__content:nth-of-type(3) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked:nth-of-type(4)~.tab__content:nth-of-type(4) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked:nth-of-type(5)~.tab__content:nth-of-type(5) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked:nth-of-type(6)~.tab__content:nth-of-type(6) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked:nth-of-type(7)~.tab__content:nth-of-type(7) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked:nth-of-type(8)~.tab__content:nth-of-type(8) {
 | |
|         opacity: 1;
 | |
|         transition: 0.5s opacity ease-in, 0.8s -webkit-transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease;
 | |
|         transition: 0.5s opacity ease-in, 0.8s transform ease, 0.8s -webkit-transform ease;
 | |
|         position: relative;
 | |
|         top: 0;
 | |
|         z-index: 100;
 | |
|         -webkit-transform: translateY(0px);
 | |
|         transform: translateY(0px);
 | |
|         text-shadow: 0 0 0;
 | |
|     }
 | |
| 
 | |
|     .tab:first-of-type:not(:last-of-type)+label {
 | |
|         border-top-right-radius: 0;
 | |
|         border-bottom-right-radius: 0;
 | |
|     }
 | |
| 
 | |
|     .tab:not(:first-of-type):not(:last-of-type)+label {
 | |
|         border-radius: 0;
 | |
|     }
 | |
| 
 | |
|     .tab:last-of-type:not(:first-of-type)+label {
 | |
|         border-top-left-radius: 0;
 | |
|         border-bottom-left-radius: 0;
 | |
|     }
 | |
| 
 | |
|     .tab:checked+label {
 | |
|         background-color: #fff;
 | |
|         box-shadow: 0 -1px 0 #fff inset;
 | |
|         cursor: default;
 | |
|         font-weight: bold;
 | |
|         border: 1px solid #ddd;
 | |
|         border-bottom-color: transparent;
 | |
|     }
 | |
| 
 | |
|     .tab:checked+label:hover {
 | |
|         box-shadow: 0 -1px 0 #fff inset;
 | |
|         background-color: #fff;
 | |
|     }
 | |
| 
 | |
|     .tab+label {
 | |
|         box-shadow: 0 -1px 0 #eee inset;
 | |
|         border-radius: 6px 6px 0 0;
 | |
|         cursor: pointer;
 | |
|         display: block;
 | |
|         text-decoration: none;
 | |
|         color: #27aae1;
 | |
|         flex-grow: 3;
 | |
|         text-align: center;
 | |
|         -webkit-user-select: none;
 | |
|         -moz-user-select: none;
 | |
|         -ms-user-select: none;
 | |
|         user-select: none;
 | |
|         text-align: center;
 | |
|         transition: 0.3s background-color ease, 0.3s box-shadow ease;
 | |
|         height: 50px;
 | |
|         box-sizing: border-box;
 | |
|         padding: 15px;
 | |
|     }
 | |
| 
 | |
|     .tab+label:hover {
 | |
|         background-color: #f9f9f9;
 | |
|         box-shadow: 0 1px 0 #f4f4f4 inset;
 | |
|     }
 | |
| 
 | |
|     .tab__content {
 | |
|         padding: 2px 2px;
 | |
|         background-color: transparent;
 | |
|         position: absolute;
 | |
|         width: 100%;
 | |
|         z-index: -1;
 | |
|         opacity: 0;
 | |
|         left: 0;
 | |
|         -webkit-transform: translateY(-3px);
 | |
|         transform: translateY(-3px);
 | |
|         border-radius: 6px;
 | |
|     }
 | |
| 
 | |
|     .tab__content pre {
 | |
|         margin-bottom: 0px !important;
 | |
|     }
 | |
| 
 | |
|     .toolbar-icons {
 | |
|         display: inline-block;
 | |
|         position: relative;
 | |
|         padding-left: 4px;
 | |
|     }
 | |
| 
 | |
|     a.toolbar-icons {
 | |
|         text-decoration: none;
 | |
|     }
 | |
| 
 | |
|     .toolbar-icons .mdi {
 | |
|         color: #4183c4;
 | |
|     }
 | |
| 
 | |
|     .copy-msg {
 | |
|         color: #4183c4;
 | |
|     }
 | |
| 
 | |
|     .pull-right {
 | |
|         float: right !important;
 | |
|     }
 | |
| 
 | |
|     .pull-left {
 | |
|         float: left !important;
 | |
|     }
 | |
| </style>
 | |
| <!-- Global site tag (gtag.js) - Google Analytics -->
 | |
| <script async src="https://www.googletagmanager.com/gtag/js?id=UA-111730698-1"></script>
 | |
| <script>
 | |
|  window.dataLayer = window.dataLayer || [];
 | |
|  function gtag(){dataLayer.push(arguments);}
 | |
|  gtag('js', new Date());
 | |
| 
 | |
|  gtag('config', 'UA-111730698-1');
 | |
| </script>
 | |
| 
 | |
|         
 | |
|     <script src="../../gitbook/gitbook.js"></script>
 | |
|     <script src="../../gitbook/theme.js"></script>
 | |
|     
 | |
|         
 | |
|         <script src="../../gitbook/gitbook-plugin-toggle-chapters/toggle.js"></script>
 | |
|         
 | |
|     
 | |
|         
 | |
|         <script src="../../gitbook/gitbook-plugin-edit-link/plugin.js"></script>
 | |
|         
 | |
|     
 | |
|         
 | |
|         <script src="../../gitbook/gitbook-plugin-search/search-engine.js"></script>
 | |
|         
 | |
|     
 | |
|         
 | |
|         <script src="../../gitbook/gitbook-plugin-search/search.js"></script>
 | |
|         
 | |
|     
 | |
|         
 | |
|         <script src="../../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
 | |
|         
 | |
|     
 | |
|         
 | |
|         <script src="../../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
 | |
|         
 | |
|     
 | |
|         
 | |
|         <script src="../../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
 | |
|         
 | |
|     
 | |
| 
 | |
|     </body>
 | |
| </html>
 | |
| 
 |