UNPKG

signalk-server

Version:

An implementation of a [Signal K](http://signalk.org) server for boats.

53 lines (52 loc) 31.6 kB
<!DOCTYPE html><html class="default" lang="en" data-base="../../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SubscribeMessage | Signal K</title><meta name="description" content="Documentation for Signal K"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../../assets/style.css?cache=1783009712609"/><link rel="stylesheet" href="../../assets/highlight.css?cache=1783009712609"/><script defer src="../../assets/main.js?cache=1783009712609"></script><script async src="../../assets/icons.js?cache=1783009712609" id="tsd-icons-script"></script><script async src="../../assets/search.js?cache=1783009712609" id="tsd-search-script"></script><script async src="../../assets/navigation.js?cache=1783009712609" id="tsd-nav-script"></script><script async src="../../assets/hierarchy.js?cache=1783009712609" id="tsd-hierarchy-script"></script><link rel="stylesheet" href="../../assets/theme.css"/><script>if(window.self!==window.top){document.documentElement.classList.add('embedded')}</script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../../index.html" class="title"><img class="title-logo" src="../../assets/logo.svg" alt="Signal K"/><svg class="title-home-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-label="Documentation home"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg></a><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-search"></use></svg><span class="visible@s">Search</span></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><div id="tsd-toolbar-links"><a href="https://discord.gg/uuZrwz4dCS" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M524.5 69.8a1.5 1.5 0 0 0 -.8-.7A485.1 485.1 0 0 0 404.1 32a1.8 1.8 0 0 0 -1.9 .9 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.1-30.6 1.9 1.9 0 0 0 -1.9-.9A483.7 483.7 0 0 0 116.1 69.1a1.7 1.7 0 0 0 -.8 .7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 0 0 .8 1.4A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.1-.7A348.2 348.2 0 0 0 208.1 430.4a1.9 1.9 0 0 0 -1-2.6 321.2 321.2 0 0 1 -45.9-21.9 1.9 1.9 0 0 1 -.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8 0 0 1 1.9-.3c96.2 43.9 200.4 43.9 295.5 0a1.8 1.8 0 0 1 1.9 .2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9 0 0 1 -.2 3.1 301.4 301.4 0 0 1 -45.9 21.8 1.9 1.9 0 0 0 -1 2.6 391.1 391.1 0 0 0 30 48.8 1.9 1.9 0 0 0 2.1 .7A486 486 0 0 0 610.7 405.7a1.9 1.9 0 0 0 .8-1.4C623.7 277.6 590.9 167.5 524.5 69.8zM222.5 337.6c-29 0-52.8-26.6-52.8-59.2S193.1 219.1 222.5 219.1c29.7 0 53.3 26.8 52.8 59.2C275.3 311 251.9 337.6 222.5 337.6zm195.4 0c-29 0-52.8-26.6-52.8-59.2S388.4 219.1 417.9 219.1c29.7 0 53.3 26.8 52.8 59.2C470.7 311 447.5 337.6 417.9 337.6z"></path></svg></a><a href="https://github.com/SignalK/signalk-server" target="_blank" rel="noopener" class="toolbar-icon visible@s" aria-label="Discord"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></a><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../server-api.html">@signalk/server-api</a></li><li><a href="" aria-current="page">SubscribeMessage</a></li></ul><h1>Interface SubscribeMessage</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>A message to allow a client to subscribe for data updates from a signalk server</p> </div><div class="tsd-comment tsd-typography"><div class="tsd-tag-see"><h4 class="tsd-anchor-link" id="see">See<a href="#see" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h4><p><a href="https://signalk.org/specification/1.7.0/doc/subscription_protocol.html?highlight=subscribe#introduction">SignalK Specification: Subscription Protocol</a></p> </div></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">SubscribeMessage</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#context">context</a><span class="tsd-signature-symbol">:</span> <a href="Context.html" class="tsd-signature-type tsd-kind-type-alias">Context</a> <span class="tsd-signature-symbol">|</span> <a href="RelativePositionOrigin.html" class="tsd-signature-type tsd-kind-interface">RelativePositionOrigin</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#subscribe">subscribe</a><span class="tsd-signature-symbol">:</span> (<br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;fixed&quot;</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-symbol">{</span><br/>            <span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;delta&quot;</span><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?:</span> <a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a><span class="tsd-signature-symbol">;</span><br/>        <span class="tsd-signature-symbol">}</span><br/>        <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;instant&quot;</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-symbol">{</span><br/>            <span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;delta&quot;</span><span class="tsd-signature-symbol">;</span><br/>            <span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?:</span> <a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a><span class="tsd-signature-symbol">;</span><br/>        <span class="tsd-signature-symbol">}</span><br/>    )<span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#announcenewpaths">announceNewPaths</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#excludeself">excludeSelf</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#excludesources">excludeSources</a><span class="tsd-signature-symbol">?:</span> <a href="SourceRef.html" class="tsd-signature-type tsd-kind-type-alias">SourceRef</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#sourcepolicy">sourcePolicy</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;preferred&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;all&quot;</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/67249e0e0fdcf7f9b0298bfada4cec32ea581a38/packages/server-api/src/subscriptionmanager.ts#L29">packages/server-api/src/subscriptionmanager.ts:29</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#context" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>context</span></a> <a href="#subscribe" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>subscribe</span></a> <a href="#announcenewpaths" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>announce<wbr/>New<wbr/>Paths?</span></a> <a href="#excludeself" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>exclude<wbr/>Self?</span></a> <a href="#excludesources" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>exclude<wbr/>Sources?</span></a> <a href="#sourcepolicy" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>source<wbr/>Policy?</span></a> </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="context"><span>context</span><a href="#context" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">context</span><span class="tsd-signature-symbol">:</span> <a href="Context.html" class="tsd-signature-type tsd-kind-type-alias">Context</a> <span class="tsd-signature-symbol">|</span> <a href="RelativePositionOrigin.html" class="tsd-signature-type tsd-kind-interface">RelativePositionOrigin</a></div><div class="tsd-comment tsd-typography"><p>The context path for all subsequent paths, usually a vessel's path.</p> </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/67249e0e0fdcf7f9b0298bfada4cec32ea581a38/packages/server-api/src/subscriptionmanager.ts#L33">packages/server-api/src/subscriptionmanager.ts:33</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="subscribe"><span>subscribe</span><a href="#subscribe" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">subscribe</span><span class="tsd-signature-symbol">:</span> (<br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;fixed&quot;</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-symbol">{</span><br/>        <span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;delta&quot;</span><span class="tsd-signature-symbol">;</span><br/>        <span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?:</span> <a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-signature-symbol">}</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;instant&quot;</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-symbol">{</span><br/>        <span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;delta&quot;</span><span class="tsd-signature-symbol">;</span><br/>        <span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?:</span> <a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-signature-symbol">}</span><br/>)<span class="tsd-signature-symbol">[]</span></div><div class="tsd-comment tsd-typography"><p>An array of paths to subscribe to, with optional criteria</p> </div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul><li><span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;fixed&quot;</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-symbol">{</span><br/>    <span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;delta&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?:</span> <a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span></h5><div class="tsd-comment tsd-typography"><p>If policy=immediate or ideal, consecutive messages will be buffered until minPeriod has expired so the receiver is not swamped.</p> </div></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><p>The subscription will be sent every period millisecs.</p> </div></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">&quot;fixed&quot;</span></h5><div class="tsd-comment tsd-typography"><ul> <li><code>fixed</code> - Send the last known values every <code>period</code>.</li> <li><code>inline</code> - Send all changes as fast as they are received, but no faster than <code>minPeriod</code>. With this policy the client has an immediate copy of the current state of the server.</li> </ul> </div></li></ul><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">&quot;delta&quot;</span></h5><div class="tsd-comment tsd-typography"><p>The signal K format to use for the message. Only <code>delta</code> is currently supported. See <a href="https://signalk.org/specification/1.7.0/doc/data_model.html">Signal K Data Model</a></p> </div></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?: </span><a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a></h5><div class="tsd-comment tsd-typography"><p>The path to subscribe to.</p> </div></li></ul></li><li><span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;instant&quot;</span> <span class="tsd-signature-symbol">}</span> <span class="tsd-signature-symbol">&amp;</span> <span class="tsd-signature-symbol">{</span><br/>    <span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;delta&quot;</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?:</span> <a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">minPeriod</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span></h5></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">period</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">undefined</span></h5></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">policy</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">&quot;instant&quot;</span></h5></li></ul><ul class="tsd-parameters"><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">format</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">&quot;delta&quot;</span></h5><div class="tsd-comment tsd-typography"><p>The signal K format to use for the message. Only <code>delta</code> is currently supported. See <a href="https://signalk.org/specification/1.7.0/doc/data_model.html">Signal K Data Model</a></p> </div></li><li class="tsd-parameter"><h5><code class="tsd-tag">Optional</code><span class="tsd-kind-property">path</span><span class="tsd-signature-symbol">?: </span><a href="Path.html" class="tsd-signature-type tsd-kind-type-alias">Path</a></h5><div class="tsd-comment tsd-typography"><p>The path to subscribe to.</p> </div></li></ul></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/67249e0e0fdcf7f9b0298bfada4cec32ea581a38/packages/server-api/src/subscriptionmanager.ts#L38">packages/server-api/src/subscriptionmanager.ts:38</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="announcenewpaths"><code class="tsd-tag">Optional</code><span>announce<wbr/>New<wbr/>Paths</span><a href="#announcenewpaths" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">announceNewPaths</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div><div class="tsd-comment tsd-typography"><p>When true, the server will send cached values for ALL paths matching the context filter once (for discovery), plus announce any new paths that appear later. This allows clients using granular subscriptions to discover available paths without subscribing to everything continuously.</p> </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/67249e0e0fdcf7f9b0298bfada4cec32ea581a38/packages/server-api/src/subscriptionmanager.ts#L46">packages/server-api/src/subscriptionmanager.ts:46</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="excludeself"><code class="tsd-tag">Optional</code><span>exclude<wbr/>Self</span><a href="#excludeself" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">excludeSelf</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div><div class="tsd-comment tsd-typography"><p>Plugin-API shorthand for <code>excludeSources: [&lt;this plugin's id&gt;]</code>. Resolved on the server side, so plugins don't need to know their own id. Useful for plugins that publish on the same path they consume — without the exclude their own output would dominate the priority cascade and they'd never see any other source.</p> <p>Only meaningful for subscriptions made through <code>app.subscriptionmanager.subscribe()</code> from inside a plugin. On WebSocket subscriptions there is no plugin identity to resolve against, and <code>excludeSelf</code> is ignored — WebSocket clients should use the explicit <code>excludeSources</code> form.</p> <p>Effective only when <code>sourcePolicy</code> is <code>'preferred'</code> (the default).</p> </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/67249e0e0fdcf7f9b0298bfada4cec32ea581a38/packages/server-api/src/subscriptionmanager.ts#L87">packages/server-api/src/subscriptionmanager.ts:87</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="excludesources"><code class="tsd-tag">Optional</code><span>exclude<wbr/>Sources</span><a href="#excludesources" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">excludeSources</span><span class="tsd-signature-symbol">?:</span> <a href="SourceRef.html" class="tsd-signature-type tsd-kind-type-alias">SourceRef</a><span class="tsd-signature-symbol">[]</span></div><div class="tsd-comment tsd-typography"><p>Drop the listed source refs from the candidate set used by the priority cascade. The subscription still receives the priority-resolved single winner per path, just computed over the remaining sources. Use this to let a derived-data plugin subscribe to upstream sources with the user's priority ranking applied, without seeing its own output in the cascade.</p> <p>Effective only when <code>sourcePolicy</code> is <code>'preferred'</code> (the default). Ignored under <code>sourcePolicy: 'all'</code>, which already bypasses priority resolution.</p> <p>When combined with <code>excludeSelf</code>, the union of both sets is excluded.</p> </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/67249e0e0fdcf7f9b0298bfada4cec32ea581a38/packages/server-api/src/subscriptionmanager.ts#L70">packages/server-api/src/subscriptionmanager.ts:70</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="sourcepolicy"><code class="tsd-tag">Optional</code><span>source<wbr/>Policy</span><a href="#sourcepolicy" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">sourcePolicy</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">&quot;preferred&quot;</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;all&quot;</span></div><div class="tsd-comment tsd-typography"><p>Controls which sources are included in deltas.</p> <ul> <li><code>preferred</code> (default): only the preferred source per path (based on source priorities)</li> <li><code>all</code>: all sources for every path, useful for source comparison and diagnostics</li> </ul> </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/SignalK/signalk-server/blob/67249e0e0fdcf7f9b0298bfada4cec32ea581a38/packages/server-api/src/subscriptionmanager.ts#L53">packages/server-api/src/subscriptionmanager.ts:53</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#context"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>context</span></a><a href="#subscribe"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>subscribe</span></a><a href="#announcenewpaths"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>announce<wbr/>New<wbr/>Paths</span></a><a href="#excludeself"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>exclude<wbr/>Self</span></a><a href="#excludesources"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>exclude<wbr/>Sources</span></a><a href="#sourcepolicy"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../../assets/icons.svg#icon-1024"></use></svg><span>source<wbr/>Policy</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../../modules.html">Signal K</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>