js-libp2p-interfaces/classes/_pubsub_index_.pubsubbaseprotocol.html

2114 lines
135 KiB
HTML
Raw Normal View History

2020-12-10 14:07:32 +01:00
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>PubsubBaseProtocol | libp2p-interfaces - v0.8.0</title>
<meta name="description" content="Documentation for libp2p-interfaces - v0.8.0">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<link href="https://unpkg.com/nord-highlightjs@0.1.0/dist/nord.css" rel="stylesheet" type="text/css" />
<style>
.toolbar-icon {
display: inline-block;
vertical-align: middle;
margin-left: 10px;
cursor: pointer;
}
.toolbar-icon-search {
box-sizing: border-box;
position: absolute;
overflow: hidden;
right: -40px;
width: 40px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
@media (min-width: 901px){
display: none
}
}
@media (min-width: 901px){
.toolbar-icon-menu {
display: none
}
.toolbar-icon-options {
display: none
}
}
.gg-menu {
transform: scale(var(--ggs,1))
}
.gg-menu,
.gg-menu::after,
.gg-menu::before {
box-sizing: border-box;
position: relative;
display: block;
width: 20px;
height: 2px;
border-radius: 3px;
background: currentColor
}
.gg-menu::after,
.gg-menu::before {
content: "";
position: absolute;
top: -6px
}
.gg-menu::after {
top: 6px
}
.gg-options {
box-sizing: border-box;
position: relative;
display: block;
transform: scale(var(--ggs,1));
width: 10px;
height: 2px;
box-shadow:
-3px 4px 0 0,
3px -4px 0 0
}
.gg-options::after,
.gg-options::before {
content: "";
display: block;
box-sizing: border-box;
position: absolute;
width: 8px;
height: 8px;
border: 2px solid;
border-radius: 100%
}
.gg-options::before {
top: -7px;
left: -4px
}
.gg-options::after {
bottom: -7px;
right: -4px
}
.gg-search {
box-sizing: border-box;
position: relative;
display: block;
transform: scale(var(--ggs,1));
width: 16px;
height: 16px;
border: 2px solid;
border-radius: 100%;
margin-left: -4px;
margin-top: -4px
}
.gg-search::after {
content: "";
display: block;
box-sizing: border-box;
position: absolute;
border-radius: 3px;
width: 2px;
height: 8px;
background: currentColor;
transform: rotate(-45deg);
top: 10px;
left: 12px
}
</style>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="toolbar-icon toolbar-icon-search"><i class="gg-search"></i></label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">libp2p-interfaces - v0.8.0</a>
</div>
<div class="table-cell" id="tsd-widgets">
<a href="#" class="toolbar-icon toolbar-icon-menu" data-toggle="menu"><i class="gg-menu"></i></a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../modules/_pubsub_index_.html">pubsub/index</a>
</li>
<li>
<a href="_pubsub_index_.pubsubbaseprotocol.html">PubsubBaseProtocol</a>
</li>
</ul>
<h1>Class PubsubBaseProtocol</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>PubsubBaseProtocol handles the peers and connections logic for pubsub routers
and specifies the API that pubsub routers should have.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="tsd-signature-type">EventEmitter</span>
<ul class="tsd-hierarchy">
<li>
<span class="target">PubsubBaseProtocol</span>
</li>
</ul>
</li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>References</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#bufferlist" class="tsd-kind-icon">Buffer<wbr>List</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#connection" class="tsd-kind-icon">Connection</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-kind-icon">In<wbr>Message</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#libp2p" class="tsd-kind-icon">Libp2p</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#muxedstream" class="tsd-kind-icon">Muxed<wbr>Stream</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#peerid" class="tsd-kind-icon">Peer<wbr>Id</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-kind-icon">RPC</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-kind-icon">RPCMessage</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#rpcsubopts" class="tsd-kind-icon">RPCSub<wbr>Opts</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#signaturepolicy" class="tsd-kind-icon">Signature<wbr>Policy</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#signaturepolicytype" class="tsd-kind-icon">Signature<wbr>Policy<wbr>Type</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#message" class="tsd-kind-icon">message</a></li>
<li class="tsd-kind-reference tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#utils" class="tsd-kind-icon">utils</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Constructors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><a href="_pubsub_index_.pubsubbaseprotocol.html#constructor" class="tsd-kind-icon">constructor</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_libp2p" class="tsd-kind-icon">_libp2p</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_registrarid" class="tsd-kind-icon">_registrar<wbr>Id</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#canrelaymessage" class="tsd-kind-icon">can<wbr>Relay<wbr>Message</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#emitself" class="tsd-kind-icon">emit<wbr>Self</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#globalsignaturepolicy" class="tsd-kind-icon">global<wbr>Signature<wbr>Policy</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#log" class="tsd-kind-icon">log</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#multicodecs" class="tsd-kind-icon">multicodecs</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#peerid-1" class="tsd-kind-icon">peer<wbr>Id</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#peers" class="tsd-kind-icon">peers</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#registrar" class="tsd-kind-icon">registrar</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#started" class="tsd-kind-icon">started</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#subscriptions" class="tsd-kind-icon">subscriptions</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#topicvalidators" class="tsd-kind-icon">topic<wbr>Validators</a></li>
<li class="tsd-kind-property tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#topics" class="tsd-kind-icon">topics</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static"><a href="_pubsub_index_.pubsubbaseprotocol.html#defaultmaxlisteners" class="tsd-kind-icon">default<wbr>Max<wbr>Listeners</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static"><a href="_pubsub_index_.pubsubbaseprotocol.html#errormonitor" class="tsd-kind-icon">error<wbr>Monitor</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_acceptfrom" class="tsd-kind-icon">_accept<wbr>From</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="_pubsub_index_.pubsubbaseprotocol.html#_addpeer" class="tsd-kind-icon">_add<wbr>Peer</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="_pubsub_index_.pubsubbaseprotocol.html#_buildmessage" class="tsd-kind-icon">_build<wbr>Message</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_decoderpc" class="tsd-kind-icon">_decode<wbr>Rpc</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_emitmessage" class="tsd-kind-icon">_emit<wbr>Message</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_encoderpc" class="tsd-kind-icon">_encode<wbr>Rpc</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="_pubsub_index_.pubsubbaseprotocol.html#_onincomingstream" class="tsd-kind-icon">_on<wbr>Incoming<wbr>Stream</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="_pubsub_index_.pubsubbaseprotocol.html#_onpeerconnected" class="tsd-kind-icon">_on<wbr>Peer<wbr>Connected</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="_pubsub_index_.pubsubbaseprotocol.html#_onpeerdisconnected" class="tsd-kind-icon">_on<wbr>Peer<wbr>Disconnected</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_processmessages" class="tsd-kind-icon">_process<wbr>Messages</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_processrpc" class="tsd-kind-icon">_process<wbr>Rpc</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_processrpcmessage" class="tsd-kind-icon">_process<wbr>Rpc<wbr>Message</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_processrpcsubopt" class="tsd-kind-icon">_process<wbr>Rpc<wbr>Sub<wbr>Opt</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_publish" class="tsd-kind-icon">_publish</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="_pubsub_index_.pubsubbaseprotocol.html#_removepeer" class="tsd-kind-icon">_remove<wbr>Peer</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_sendrpc" class="tsd-kind-icon">_send<wbr>Rpc</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#_sendsubscriptions" class="tsd-kind-icon">_send<wbr>Subscriptions</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#addlistener" class="tsd-kind-icon">add<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#emit" class="tsd-kind-icon">emit</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#eventnames" class="tsd-kind-icon">event<wbr>Names</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#getmaxlisteners" class="tsd-kind-icon">get<wbr>Max<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#getmsgid" class="tsd-kind-icon">get<wbr>Msg<wbr>Id</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#getsubscribers" class="tsd-kind-icon">get<wbr>Subscribers</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#gettopics" class="tsd-kind-icon">get<wbr>Topics</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#listenercount" class="tsd-kind-icon">listener<wbr>Count</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#listeners" class="tsd-kind-icon">listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#off" class="tsd-kind-icon">off</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#on" class="tsd-kind-icon">on</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#once" class="tsd-kind-icon">once</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#prependlistener" class="tsd-kind-icon">prepend<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#prependoncelistener" class="tsd-kind-icon">prepend<wbr>Once<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#publish" class="tsd-kind-icon">publish</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#rawlisteners" class="tsd-kind-icon">raw<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#removealllisteners" class="tsd-kind-icon">remove<wbr>All<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#removelistener" class="tsd-kind-icon">remove<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="_pubsub_index_.pubsubbaseprotocol.html#setmaxlisteners" class="tsd-kind-icon">set<wbr>Max<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#start" class="tsd-kind-icon">start</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#stop" class="tsd-kind-icon">stop</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#subscribe" class="tsd-kind-icon">subscribe</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#unsubscribe" class="tsd-kind-icon">unsubscribe</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="_pubsub_index_.pubsubbaseprotocol.html#validate" class="tsd-kind-icon">validate</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static"><a href="_pubsub_index_.pubsubbaseprotocol.html#listenercount-1" class="tsd-kind-icon">listener<wbr>Count</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>References</h2>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="bufferlist" class="tsd-anchor"></a>
<h3>Buffer<wbr>List</h3>
Re-exports <a href="../modules/_pubsub_index_.html#bufferlist">BufferList</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="connection" class="tsd-anchor"></a>
<h3>Connection</h3>
Re-exports <a href="_connection_connection_.connection.html">Connection</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="inmessage" class="tsd-anchor"></a>
<h3>In<wbr>Message</h3>
Re-exports <a href="../modules/_pubsub_index_.html#inmessage">InMessage</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="libp2p" class="tsd-anchor"></a>
<h3>Libp2p</h3>
Re-exports <a href="../modules/_pubsub_index_.html#libp2p">Libp2p</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="muxedstream" class="tsd-anchor"></a>
<h3>Muxed<wbr>Stream</h3>
Re-exports <a href="../modules/_connection_connection_.html#muxedstream">MuxedStream</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="peerid" class="tsd-anchor"></a>
<h3>Peer<wbr>Id</h3>
Re-exports <a href="../modules/_pubsub_peer_streams_.html#peerid">PeerId</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="rpc" class="tsd-anchor"></a>
<h3>RPC</h3>
Re-exports <a href="../modules/_pubsub_index_.html#rpc">RPC</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="rpcmessage" class="tsd-anchor"></a>
<h3>RPCMessage</h3>
Re-exports <a href="../modules/_pubsub_index_.html#rpcmessage">RPCMessage</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="rpcsubopts" class="tsd-anchor"></a>
<h3>RPCSub<wbr>Opts</h3>
Re-exports <a href="../modules/_pubsub_index_.html#rpcsubopts">RPCSubOpts</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="signaturepolicy" class="tsd-anchor"></a>
<h3>Signature<wbr>Policy</h3>
Re-exports <a href="../modules/_pubsub_index_.html#signaturepolicy">SignaturePolicy</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="signaturepolicytype" class="tsd-anchor"></a>
<h3>Signature<wbr>Policy<wbr>Type</h3>
Re-exports <a href="../modules/_pubsub_index_.html#signaturepolicytype">SignaturePolicyType</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="message" class="tsd-anchor"></a>
<h3>message</h3>
Re-exports <a href="../modules/_pubsub_index_.html#message">message</a>
</section>
<section class="tsd-panel tsd-member tsd-kind-reference tsd-parent-kind-class">
<a name="utils" class="tsd-anchor"></a>
<h3>utils</h3>
Re-exports <a href="../modules/_pubsub_index_.html#utils">utils</a>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Constructors</h2>
<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite">
<a name="constructor" class="tsd-anchor"></a>
<h3>constructor</h3>
<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite">
<li class="tsd-signature tsd-kind-icon">new <wbr>Pubsub<wbr>Base<wbr>Protocol<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>canRelayMessage<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>debugName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>emitSelf<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>globalSignaturePolicy<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"StrictSign"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"StrictNoSign"</span><span class="tsd-signature-symbol">; </span>libp2p<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>multicodecs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html" class="tsd-signature-type">PubsubBaseProtocol</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Overrides <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#constructor">constructor</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>abstract</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>canRelayMessage<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>debugName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>emitSelf<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">; </span>globalSignaturePolicy<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"StrictSign"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"StrictNoSign"</span><span class="tsd-signature-symbol">; </span>libp2p<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>multicodecs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>can<wbr>Relay<wbr>Message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></h5>
</li>
<li class="tsd-parameter">
<h5>debug<wbr>Name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5>emit<wbr>Self<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">false</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">true</span></h5>
</li>
<li class="tsd-parameter">
<h5>global<wbr>Signature<wbr>Policy<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"StrictSign"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"StrictNoSign"</span></h5>
</li>
<li class="tsd-parameter">
<h5>libp2p<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></h5>
</li>
<li class="tsd-parameter">
<h5>multicodecs<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="_pubsub_index_.pubsubbaseprotocol.html" class="tsd-signature-type">PubsubBaseProtocol</a></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="_libp2p" class="tsd-anchor"></a>
<h3>_libp2p</h3>
<div class="tsd-signature tsd-kind-icon">_libp2p<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="_registrarid" class="tsd-anchor"></a>
<h3>_registrar<wbr>Id</h3>
<div class="tsd-signature tsd-kind-icon">_registrar<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="canrelaymessage" class="tsd-anchor"></a>
<h3>can<wbr>Relay<wbr>Message</h3>
<div class="tsd-signature tsd-kind-icon">can<wbr>Relay<wbr>Message<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>If router can relay received messages, even if not subscribed</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="emitself" class="tsd-anchor"></a>
<h3>emit<wbr>Self</h3>
<div class="tsd-signature tsd-kind-icon">emit<wbr>Self<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>if publish should emit to self, if subscribed</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="globalsignaturepolicy" class="tsd-anchor"></a>
<h3>global<wbr>Signature<wbr>Policy</h3>
<div class="tsd-signature tsd-kind-icon">global<wbr>Signature<wbr>Policy<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The signature policy to follow by default</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="log" class="tsd-anchor"></a>
<h3>log</h3>
<div class="tsd-signature tsd-kind-icon">log<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="multicodecs" class="tsd-anchor"></a>
<h3>multicodecs</h3>
<div class="tsd-signature tsd-kind-icon">multicodecs<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="peerid-1" class="tsd-anchor"></a>
<h3>peer<wbr>Id</h3>
<div class="tsd-signature tsd-kind-icon">peer<wbr>Id<span class="tsd-signature-symbol">:</span> <a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="peers" class="tsd-anchor"></a>
<h3>peers</h3>
<div class="tsd-signature tsd-kind-icon">peers<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Map of peer streams</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="registrar" class="tsd-anchor"></a>
<h3>registrar</h3>
<div class="tsd-signature tsd-kind-icon">registrar<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="started" class="tsd-anchor"></a>
<h3>started</h3>
<div class="tsd-signature tsd-kind-icon">started<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="subscriptions" class="tsd-anchor"></a>
<h3>subscriptions</h3>
<div class="tsd-signature tsd-kind-icon">subscriptions<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>List of our subscriptions</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="topicvalidators" class="tsd-anchor"></a>
<h3>topic<wbr>Validators</h3>
<div class="tsd-signature tsd-kind-icon">topic<wbr>Validators<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">(</span>arg0<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, arg1<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Topic validator map</p>
</div>
<p>Keyed by topic
Topic validators are functions with the following input:</p>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class">
<a name="topics" class="tsd-anchor"></a>
<h3>topics</h3>
<div class="tsd-signature tsd-kind-icon">topics<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Map</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Map of topics to which peers are subscribed to</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<a name="defaultmaxlisteners" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> default<wbr>Max<wbr>Listeners</h3>
<div class="tsd-signature tsd-kind-icon">default<wbr>Max<wbr>Listeners<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#defaultmaxlisteners">defaultMaxListeners</a></p>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<a name="errormonitor" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> error<wbr>Monitor</h3>
<div class="tsd-signature tsd-kind-icon">error<wbr>Monitor<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">unique </span><span class="tsd-signature-type">symbol</span></div>
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#errormonitor">errorMonitor</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This symbol shall be used to install a listener for only monitoring <code>&#39;error&#39;</code>
events. Listeners installed using this symbol are called before the regular
<code>&#39;error&#39;</code> listeners are called.</p>
</div>
<p>Installing a listener using this symbol does not change the behavior once an
<code>&#39;error&#39;</code> event is emitted, therefore the process will still crash if no
regular <code>&#39;error&#39;</code> listener is installed.</p>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_acceptfrom" class="tsd-anchor"></a>
<h3>_accept<wbr>From</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_accept<wbr>From<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Whether to accept a message from a peer
Override to create a graylist</p>
</div>
<dl class="tsd-comment-tags">
<dt>override</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="_addpeer" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> _add<wbr>Peer</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">_add<wbr>Peer<span class="tsd-signature-symbol">(</span>peerId<span class="tsd-signature-symbol">: </span><a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a>, protocol<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Notifies the router that a peer has been connected</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>peerId: <a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a></h5>
</li>
<li>
<h5>protocol: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="_buildmessage" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> _build<wbr>Message</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">_build<wbr>Message<span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-signature-type">RPCMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-signature-type">RPCMessage</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Normalizes the message and signs it, if signing is enabled.
Should be used by the routers to create the message to send.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>message: <a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-signature-type">RPCMessage</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-signature-type">RPCMessage</a><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_decoderpc" class="tsd-anchor"></a>
<h3>_decode<wbr>Rpc</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_decode<wbr>Rpc<span class="tsd-signature-symbol">(</span>bytes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Decode Uint8Array into an RPC object.
This can be override to use a custom router protobuf.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>bytes: <span class="tsd-signature-type">Uint8Array</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_emitmessage" class="tsd-anchor"></a>
<h3>_emit<wbr>Message</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_emit<wbr>Message<span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Emit a message from a peer</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>message: <a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a></h5>
<div class="tsd-comment tsd-typography">
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_encoderpc" class="tsd-anchor"></a>
<h3>_encode<wbr>Rpc</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_encode<wbr>Rpc<span class="tsd-signature-symbol">(</span>rpc<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Encode RPC object into a Uint8Array.
This can be override to use a custom router protobuf.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>rpc: <a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="_onincomingstream" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> _on<wbr>Incoming<wbr>Stream</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">_on<wbr>Incoming<wbr>Stream<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>connection<span class="tsd-signature-symbol">: </span><a href="_connection_connection_.connection.html" class="tsd-signature-type">Connection</a><span class="tsd-signature-symbol">; </span>protocol<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>stream<span class="tsd-signature-symbol">: </span><a href="../interfaces/_stream_muxer_types_.muxedstream.html" class="tsd-signature-type">MuxedStream</a><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>On an inbound stream opened.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>__namedParameters: <span class="tsd-signature-symbol">{ </span>connection<span class="tsd-signature-symbol">: </span><a href="_connection_connection_.connection.html" class="tsd-signature-type">Connection</a><span class="tsd-signature-symbol">; </span>protocol<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>stream<span class="tsd-signature-symbol">: </span><a href="../interfaces/_stream_muxer_types_.muxedstream.html" class="tsd-signature-type">MuxedStream</a><span class="tsd-signature-symbol"> }</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter">
<h5>connection<span class="tsd-signature-symbol">: </span><a href="_connection_connection_.connection.html" class="tsd-signature-type">Connection</a></h5>
</li>
<li class="tsd-parameter">
<h5>protocol<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5>
</li>
<li class="tsd-parameter">
<h5>stream<span class="tsd-signature-symbol">: </span><a href="../interfaces/_stream_muxer_types_.muxedstream.html" class="tsd-signature-type">MuxedStream</a></h5>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="_onpeerconnected" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> _on<wbr>Peer<wbr>Connected</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">_on<wbr>Peer<wbr>Connected<span class="tsd-signature-symbol">(</span>peerId<span class="tsd-signature-symbol">: </span><a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a>, conn<span class="tsd-signature-symbol">: </span><a href="_connection_connection_.connection.html" class="tsd-signature-type">Connection</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registrar notifies an established connection with pubsub protocol.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>peerId: <a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a></h5>
<div class="tsd-comment tsd-typography">
<p>remote peer-id</p>
</div>
</li>
<li>
<h5>conn: <a href="_connection_connection_.connection.html" class="tsd-signature-type">Connection</a></h5>
<div class="tsd-comment tsd-typography">
<p>connection to the peer</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="_onpeerdisconnected" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> _on<wbr>Peer<wbr>Disconnected</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">_on<wbr>Peer<wbr>Disconnected<span class="tsd-signature-symbol">(</span>peerId<span class="tsd-signature-symbol">: </span><a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a>, err<span class="tsd-signature-symbol">?: </span><a href="_crypto_errors_.unexpectedpeererror.html#error" class="tsd-signature-type">Error</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registrar notifies a closing connection with pubsub protocol.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>peerId: <a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a></h5>
<div class="tsd-comment tsd-typography">
<p>peerId</p>
</div>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> err: <a href="_crypto_errors_.unexpectedpeererror.html#error" class="tsd-signature-type">Error</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_processmessages" class="tsd-anchor"></a>
<h3>_process<wbr>Messages</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_process<wbr>Messages<span class="tsd-signature-symbol">(</span>idB58Str<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, stream<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">AsyncIterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol"> | </span><a href="../modules/_pubsub_index_.html#bufferlist" class="tsd-signature-type">BufferList</a><span class="tsd-signature-symbol">&gt;</span>, peerStreams<span class="tsd-signature-symbol">: </span><a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Responsible for processing each RPC message received by other peers.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>idB58Str: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>peer id string in base58</p>
</div>
</li>
<li>
<h5>stream: <span class="tsd-signature-type">AsyncIterable</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Uint8Array</span><span class="tsd-signature-symbol"> | </span><a href="../modules/_pubsub_index_.html#bufferlist" class="tsd-signature-type">BufferList</a><span class="tsd-signature-symbol">&gt;</span></h5>
<div class="tsd-comment tsd-typography">
<p>inbound stream</p>
</div>
</li>
<li>
<h5>peerStreams: <a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a></h5>
<div class="tsd-comment tsd-typography">
<p>PubSub peer</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_processrpc" class="tsd-anchor"></a>
<h3>_process<wbr>Rpc</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_process<wbr>Rpc<span class="tsd-signature-symbol">(</span>idB58Str<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, peerStreams<span class="tsd-signature-symbol">: </span><a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a>, rpc<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Handles an rpc request from a peer</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>idB58Str: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>peerStreams: <a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a></h5>
</li>
<li>
<h5>rpc: <a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_processrpcmessage" class="tsd-anchor"></a>
<h3>_process<wbr>Rpc<wbr>Message</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_process<wbr>Rpc<wbr>Message<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Handles an message from a peer</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>msg: <a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_processrpcsubopt" class="tsd-anchor"></a>
<h3>_process<wbr>Rpc<wbr>Sub<wbr>Opt</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_process<wbr>Rpc<wbr>Sub<wbr>Opt<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, subOpt<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpcsubopts" class="tsd-signature-type">RPCSubOpts</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Handles a subscription change from a peer</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>subOpt: <a href="_pubsub_index_.pubsubbaseprotocol.html#rpcsubopts" class="tsd-signature-type">RPCSubOpts</a></h5>
<div class="tsd-comment tsd-typography">
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_publish" class="tsd-anchor"></a>
<h3>_publish</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_publish<span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Overriding the implementation of publish should handle the appropriate algorithms for the publish/subscriber implementation.
For example, a Floodsub implementation might simply publish each message to each topic for every peer</p>
</div>
<dl class="tsd-comment-tags">
<dt>abstract</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>message: <a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a name="_removepeer" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> _remove<wbr>Peer</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<li class="tsd-signature tsd-kind-icon">_remove<wbr>Peer<span class="tsd-signature-symbol">(</span>peerId<span class="tsd-signature-symbol">: </span><a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Notifies the router that a peer has been disconnected.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>peerId: <a href="../modules/_pubsub_peer_streams_.html#peerid" class="tsd-signature-type">PeerId</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="_pubsub_peer_streams_.peerstreams.html" class="tsd-signature-type">PeerStreams</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">undefined</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_sendrpc" class="tsd-anchor"></a>
<h3>_send<wbr>Rpc</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_send<wbr>Rpc<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, rpc<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Send an rpc object to a peer</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>peer id</p>
</div>
</li>
<li>
<h5>rpc: <a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-signature-type">RPC</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="_sendsubscriptions" class="tsd-anchor"></a>
<h3>_send<wbr>Subscriptions</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">_send<wbr>Subscriptions<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, topics<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, subscribe<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Send subscroptions to a peer</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>peer id</p>
</div>
</li>
<li>
<h5>topics: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
<li>
<h5>subscribe: <span class="tsd-signature-type">boolean</span></h5>
<div class="tsd-comment tsd-typography">
<p>set to false for unsubscriptions</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="addlistener" class="tsd-anchor"></a>
<h3>add<wbr>Listener</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">add<wbr>Listener<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, listener<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#addlistener">addListener</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5>listener: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="emit" class="tsd-anchor"></a>
<h3>emit</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">emit<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, <span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#emit">emit</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="eventnames" class="tsd-anchor"></a>
<h3>event<wbr>Names</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">event<wbr>Names<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#eventnames">eventNames</a></p>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="getmaxlisteners" class="tsd-anchor"></a>
<h3>get<wbr>Max<wbr>Listeners</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">get<wbr>Max<wbr>Listeners<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#getmaxlisteners">getMaxListeners</a></p>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getmsgid" class="tsd-anchor"></a>
<h3>get<wbr>Msg<wbr>Id</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Msg<wbr>Id<span class="tsd-signature-symbol">(</span>msg<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-signature-type">RPCMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Uint8Array</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The default msgID implementation
Child class can override this.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>msg: <a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-signature-type">RPCMessage</a></h5>
<div class="tsd-comment tsd-typography">
<p>the message object</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
<p>message id as bytes</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="getsubscribers" class="tsd-anchor"></a>
<h3>get<wbr>Subscribers</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Subscribers<span class="tsd-signature-symbol">(</span>topic<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Get a list of the peer-ids that are subscribed to one topic.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>topic: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="gettopics" class="tsd-anchor"></a>
<h3>get<wbr>Topics</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<wbr>Topics<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Get the list of topics which the peer is subscribed to.</p>
</div>
<dl class="tsd-comment-tags">
<dt>override</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Array</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="listenercount" class="tsd-anchor"></a>
<h3>listener<wbr>Count</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">listener<wbr>Count<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#listenercount">listenerCount</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="listeners" class="tsd-anchor"></a>
<h3>listeners</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">listeners<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#listeners">listeners</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="off" class="tsd-anchor"></a>
<h3>off</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">off<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, listener<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#off">off</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5>listener: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="on" class="tsd-anchor"></a>
<h3>on</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">on<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, listener<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#on">on</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5>listener: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="once" class="tsd-anchor"></a>
<h3>once</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">once<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, listener<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#once">once</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5>listener: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="prependlistener" class="tsd-anchor"></a>
<h3>prepend<wbr>Listener</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">prepend<wbr>Listener<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, listener<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#prependlistener">prependListener</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5>listener: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="prependoncelistener" class="tsd-anchor"></a>
<h3>prepend<wbr>Once<wbr>Listener</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">prepend<wbr>Once<wbr>Listener<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, listener<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#prependoncelistener">prependOnceListener</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5>listener: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="publish" class="tsd-anchor"></a>
<h3>publish</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">publish<span class="tsd-signature-symbol">(</span>topic<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Publishes messages to all subscribed peers</p>
</div>
<dl class="tsd-comment-tags">
<dt>override</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>topic: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>message: <span class="tsd-signature-type">Buffer</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="rawlisteners" class="tsd-anchor"></a>
<h3>raw<wbr>Listeners</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">raw<wbr>Listeners<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#rawlisteners">rawListeners</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">[]</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="removealllisteners" class="tsd-anchor"></a>
<h3>remove<wbr>All<wbr>Listeners</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">remove<wbr>All<wbr>Listeners<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#removealllisteners">removeAllListeners</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="removelistener" class="tsd-anchor"></a>
<h3>remove<wbr>Listener</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">remove<wbr>Listener<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span>, listener<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#removelistener">removeListener</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
<li>
<h5>listener: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="setmaxlisteners" class="tsd-anchor"></a>
<h3>set<wbr>Max<wbr>Listeners</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">set<wbr>Max<wbr>Listeners<span class="tsd-signature-symbol">(</span>n<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#setmaxlisteners">setMaxListeners</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>n: <span class="tsd-signature-type">number</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="start" class="tsd-anchor"></a>
<h3>start</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">start<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Register the pubsub protocol onto the libp2p node.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="stop" class="tsd-anchor"></a>
<h3>stop</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">stop<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Unregister the pubsub protocol and the streams with other peers will be closed.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="subscribe" class="tsd-anchor"></a>
<h3>subscribe</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">subscribe<span class="tsd-signature-symbol">(</span>topic<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Subscribes to a given topic.</p>
</div>
<dl class="tsd-comment-tags">
<dt>abstract</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>topic: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="unsubscribe" class="tsd-anchor"></a>
<h3>unsubscribe</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">unsubscribe<span class="tsd-signature-symbol">(</span>topic<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Unsubscribe from the given topic.</p>
</div>
<dl class="tsd-comment-tags">
<dt>override</dt>
<dd></dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>topic: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="validate" class="tsd-anchor"></a>
<h3>validate</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">validate<span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Validates the given message. The signature will be checked for authenticity.
Throws an error on invalid messages</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>message: <a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-signature-type">InMessage</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<a name="listenercount-1" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagStatic">Static</span> listener<wbr>Count</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<li class="tsd-signature tsd-kind-icon">listener<wbr>Count<span class="tsd-signature-symbol">(</span>emitter<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">EventEmitter</span>, event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="../interfaces/_transport_types_.listener.html">Listener</a>.<a href="../interfaces/_transport_types_.listener.html#listenercount-1">listenerCount</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>deprecated</dt>
<dd><p>since v4.0.0</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>emitter: <span class="tsd-signature-type">EventEmitter</span></h5>
</li>
<li>
<h5>event: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">symbol</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4>
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class="current tsd-kind-module">
<a href="../modules/_pubsub_index_.html">pubsub/index</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class tsd-parent-kind-module">
<a href="_pubsub_index_.pubsubbaseprotocol.html" class="tsd-kind-icon">Pubsub<wbr>Base<wbr>Protocol</a>
<ul>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#bufferlist" class="tsd-kind-icon">Buffer<wbr>List</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#connection" class="tsd-kind-icon">Connection</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#inmessage" class="tsd-kind-icon">In<wbr>Message</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#libp2p" class="tsd-kind-icon">Libp2p</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#muxedstream" class="tsd-kind-icon">Muxed<wbr>Stream</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#peerid" class="tsd-kind-icon">Peer<wbr>Id</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#rpc" class="tsd-kind-icon">RPC</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#rpcmessage" class="tsd-kind-icon">RPCMessage</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#rpcsubopts" class="tsd-kind-icon">RPCSub<wbr>Opts</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#signaturepolicy" class="tsd-kind-icon">Signature<wbr>Policy</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#signaturepolicytype" class="tsd-kind-icon">Signature<wbr>Policy<wbr>Type</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#message" class="tsd-kind-icon">message</a>
</li>
<li class=" tsd-kind-reference tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#utils" class="tsd-kind-icon">utils</a>
</li>
<li class=" tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite">
<a href="_pubsub_index_.pubsubbaseprotocol.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_libp2p" class="tsd-kind-icon">_libp2p</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_registrarid" class="tsd-kind-icon">_registrar<wbr>Id</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#canrelaymessage" class="tsd-kind-icon">can<wbr>Relay<wbr>Message</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#emitself" class="tsd-kind-icon">emit<wbr>Self</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#globalsignaturepolicy" class="tsd-kind-icon">global<wbr>Signature<wbr>Policy</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#log" class="tsd-kind-icon">log</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#multicodecs" class="tsd-kind-icon">multicodecs</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#peerid-1" class="tsd-kind-icon">peer<wbr>Id</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#peers" class="tsd-kind-icon">peers</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#registrar" class="tsd-kind-icon">registrar</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#started" class="tsd-kind-icon">started</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#subscriptions" class="tsd-kind-icon">subscriptions</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#topicvalidators" class="tsd-kind-icon">topic<wbr>Validators</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#topics" class="tsd-kind-icon">topics</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<a href="_pubsub_index_.pubsubbaseprotocol.html#defaultmaxlisteners" class="tsd-kind-icon">default<wbr>Max<wbr>Listeners</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<a href="_pubsub_index_.pubsubbaseprotocol.html#errormonitor" class="tsd-kind-icon">error<wbr>Monitor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_acceptfrom" class="tsd-kind-icon">_accept<wbr>From</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_addpeer" class="tsd-kind-icon">_add<wbr>Peer</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_buildmessage" class="tsd-kind-icon">_build<wbr>Message</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_decoderpc" class="tsd-kind-icon">_decode<wbr>Rpc</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_emitmessage" class="tsd-kind-icon">_emit<wbr>Message</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_encoderpc" class="tsd-kind-icon">_encode<wbr>Rpc</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_onincomingstream" class="tsd-kind-icon">_on<wbr>Incoming<wbr>Stream</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_onpeerconnected" class="tsd-kind-icon">_on<wbr>Peer<wbr>Connected</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_onpeerdisconnected" class="tsd-kind-icon">_on<wbr>Peer<wbr>Disconnected</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_processmessages" class="tsd-kind-icon">_process<wbr>Messages</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_processrpc" class="tsd-kind-icon">_process<wbr>Rpc</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_processrpcmessage" class="tsd-kind-icon">_process<wbr>Rpc<wbr>Message</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_processrpcsubopt" class="tsd-kind-icon">_process<wbr>Rpc<wbr>Sub<wbr>Opt</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_publish" class="tsd-kind-icon">_publish</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-protected">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_removepeer" class="tsd-kind-icon">_remove<wbr>Peer</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_sendrpc" class="tsd-kind-icon">_send<wbr>Rpc</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#_sendsubscriptions" class="tsd-kind-icon">_send<wbr>Subscriptions</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#addlistener" class="tsd-kind-icon">add<wbr>Listener</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#emit" class="tsd-kind-icon">emit</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#eventnames" class="tsd-kind-icon">event<wbr>Names</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#getmaxlisteners" class="tsd-kind-icon">get<wbr>Max<wbr>Listeners</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#getmsgid" class="tsd-kind-icon">get<wbr>Msg<wbr>Id</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#getsubscribers" class="tsd-kind-icon">get<wbr>Subscribers</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#gettopics" class="tsd-kind-icon">get<wbr>Topics</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#listenercount" class="tsd-kind-icon">listener<wbr>Count</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#listeners" class="tsd-kind-icon">listeners</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#off" class="tsd-kind-icon">off</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#on" class="tsd-kind-icon">on</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#once" class="tsd-kind-icon">once</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#prependlistener" class="tsd-kind-icon">prepend<wbr>Listener</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#prependoncelistener" class="tsd-kind-icon">prepend<wbr>Once<wbr>Listener</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#publish" class="tsd-kind-icon">publish</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#rawlisteners" class="tsd-kind-icon">raw<wbr>Listeners</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#removealllisteners" class="tsd-kind-icon">remove<wbr>All<wbr>Listeners</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#removelistener" class="tsd-kind-icon">remove<wbr>Listener</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="_pubsub_index_.pubsubbaseprotocol.html#setmaxlisteners" class="tsd-kind-icon">set<wbr>Max<wbr>Listeners</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#start" class="tsd-kind-icon">start</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#stop" class="tsd-kind-icon">stop</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#subscribe" class="tsd-kind-icon">subscribe</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#unsubscribe" class="tsd-kind-icon">unsubscribe</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="_pubsub_index_.pubsubbaseprotocol.html#validate" class="tsd-kind-icon">validate</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static">
<a href="_pubsub_index_.pubsubbaseprotocol.html#listenercount-1" class="tsd-kind-icon">listener<wbr>Count</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#bufferlist" class="tsd-kind-icon">Buffer<wbr>List</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#connection" class="tsd-kind-icon">Connection</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#inmessage" class="tsd-kind-icon">In<wbr>Message</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#libp2p" class="tsd-kind-icon">Libp2p</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#muxedstream" class="tsd-kind-icon">Muxed<wbr>Stream</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#peerid" class="tsd-kind-icon">Peer<wbr>Id</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#rpc" class="tsd-kind-icon">RPC</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#rpcmessage" class="tsd-kind-icon">RPCMessage</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#rpcsubopts" class="tsd-kind-icon">RPCSub<wbr>Opts</a>
</li>
<li class=" tsd-kind-type-alias tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#signaturepolicytype" class="tsd-kind-icon">Signature<wbr>Policy<wbr>Type</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#pubsubbaseprotocol_base" class="tsd-kind-icon">Pubsub<wbr>Base<wbr>Protocol_<wbr>base</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#signaturepolicy" class="tsd-kind-icon">Signature<wbr>Policy</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#message" class="tsd-kind-icon">message</a>
</li>
<li class=" tsd-kind-variable tsd-parent-kind-module tsd-is-not-exported">
<a href="../modules/_pubsub_index_.html#utils" class="tsd-kind-icon">utils</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<footer>
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-namespace"><span class="tsd-kind-icon">Namespace</span></li>
<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li>
</ul>
</div>
</div>
</footer>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>