<p>This method should be called periodically by the library consumer to execute
queued send/receive operations in the correct sequence.</p>
</div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">void</span><spanclass="tsd-signature-symbol">></span></h4><divclass="tsd-comment tsd-typography"><h4>Example</h4><pre><codeclass="language-typescript"><spanclass="hl-5">const</span><spanclass="hl-1"></span><spanclass="hl-6">channel</span><spanclass="hl-1"> = </span><spanclass="hl-5">new</span><spanclass="hl-1"></span><spanclass="hl-0">MessageChannel</span><spanclass="hl-1">(</span><spanclass="hl-2">"my-channel"</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-4">// Queue some operations</span><br/><spanclass="hl-8">await</span><spanclass="hl-1"></span><spanclass="hl-3">channel</span><spanclass="hl-1">.</span><spanclass="hl-0">sendMessage</span><spanclass="hl-1">(</span><spanclass="hl-3">payload</span><spanclass="hl-1">, </span><spanclass="hl-3">callback</span><spanclass="hl-1">);</span><br/><spanclass="hl-3">channel</span><spanclass="hl-1">.</span><spanclass="hl-0">receiveMessage</span><spanclass="hl-1">(</span><spanclass="hl-3">incomingMessage</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-4">// Process all queued operations</span><br/><spanclass="hl-8">await</span><spanclass="hl-1"></span><spanclass="hl-3">channel</span><spanclass="hl-1">.</span><spanclass="hl-0">processTasks</span><spanclass="hl-1">();</span>
</code><button>Copy</button></pre>
<h4>Throws</h4><p>Will emit a 'taskError' event if any task fails, but continues processing remaining tasks</p>
</div><asideclass="tsd-sources"><ul><li>Defined in <ahref="https://github.com/waku-org/js-waku/blob/fecc026dd71121f78d23aabb98657ea49baf25f5/packages/sds/src/message_channel/message_channel.ts#L112">src/message_channel/message_channel.ts:112</a></li></ul></aside></li></ul></section><sectionclass="tsd-panel tsd-member"><aid="receiveMessage"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>receive<wbr/>Message</span><ahref="#receiveMessage"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures"><liclass="tsd-signature tsd-anchor-link"><aid="receiveMessage.receiveMessage-1"class="tsd-anchor"></a><spanclass="tsd-kind-call-signature">receive<wbr/>Message</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">message</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">void</span><ahref="#receiveMessage.receiveMessage-1"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><divclass="tsd-comment tsd-typography"><p>Queues a received message for processing.</p>
<p>The message will be processed when processTasks() is called, ensuring
proper dependency resolution and causal ordering.</p>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">message</span>: <spanclass="tsd-signature-type">SdsMessage</span></span><divclass="tsd-comment tsd-typography"><p>The message to receive and process</p>
</div><divclass="tsd-comment tsd-typography"></div></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">void</span></h4><divclass="tsd-comment tsd-typography"><h4>Example</h4><pre><codeclass="language-typescript"><spanclass="hl-5">const</span><spanclass="hl-1"></span><spanclass="hl-6">channel</span><spanclass="hl-1"> = </span><spanclass="hl-5">new</span><spanclass="hl-1"></span><spanclass="hl-0">MessageChannel</span><spanclass="hl-1">(</span><spanclass="hl-2">"chat-room"</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-4">// Receive a message from the network</span><br/><spanclass="hl-3">channel</span><spanclass="hl-1">.</span><spanclass="hl-0">receiveMessage</span><spanclass="hl-1">(</span><spanclass="hl-3">incomingMessage</span><spanclass="hl-1">);</span><br/><br/><spanclass="hl-4">// Process the received message</span><br/><spanclass="hl-8">await</span><spanclass="hl-1"></span><spanclass="hl-3">channel</span><spanclass="hl-1">.</span><spanclass="hl-0">processTasks</span><spanclass="hl-1">();</span>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">payload</span>: <spanclass="tsd-signature-type">Uint8Array</span></span><divclass="tsd-comment tsd-typography"><p>The payload to send.</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><codeclass="tsd-tag ts-flagOptional">Optional</code><spanclass="tsd-kind-parameter">callback</span>: <spanclass="tsd-signature-symbol">(</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">message</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol"> =></span><spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">></span><spanclass="tsd-signature-symbol">)</span></span><divclass="tsd-comment tsd-typography"><p>A callback function that returns a boolean indicating whether the message was sent successfully.</p>
</div><divclass="tsd-comment tsd-typography"></div><ulclass="tsd-parameters"><liclass="tsd-parameter-signature"><ulclass="tsd-signatures"><liclass="tsd-signature"><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">message</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">></span></li><liclass="tsd-description"><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">message</span>: <spanclass="tsd-signature-type">SdsMessage</span></span></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">></span></h4></li></ul></li></ul></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">void</span><spanclass="tsd-signature-symbol">></span></h4><divclass="tsd-comment tsd-typography"></div><asideclass="tsd-sources"><ul><li>Defined in <ahref="https://github.com/waku-org/js-waku/blob/fecc026dd71121f78d23aabb98657ea49baf25f5/packages/sds/src/message_channel/message_channel.ts#L176">src/message_channel/message_channel.ts:176</a></li></ul></aside></li></ul></section><sectionclass="tsd-panel tsd-member"><aid="sendMessage"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>send<wbr/>Message</span><ahref="#sendMessage"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures"><liclass="tsd-signature tsd-anchor-link"><aid="sendMessage.sendMessage-1"class="tsd-anchor"></a><spanclass="tsd-kind-call-signature">send<wbr/>Message</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">payload</span>, <spanclass="tsd-kind-parameter">callback</span><spanclass="tsd-signature-symbol">?</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">void</span><spanclass="tsd-signature-symbol">></span><ahref="#sendMessage.sendMessage-1"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><divclass="tsd-comment tsd-typography"><p>Queues a message to be sent on this channel.</p>
<p>The message will be processed sequentially when processTasks() is called.
This ensures proper lamport timestamp ordering and causal history tracking.</p>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">payload</span>: <spanclass="tsd-signature-type">Uint8Array</span></span><divclass="tsd-comment tsd-typography"><p>The message content as a byte array</p>
</div><divclass="tsd-comment tsd-typography"></div></li><li><span><codeclass="tsd-tag ts-flagOptional">Optional</code><spanclass="tsd-kind-parameter">callback</span>: <spanclass="tsd-signature-symbol">(</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">message</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol"> =></span><spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-symbol">{ </span><br/><span></span><spanclass="tsd-kind-property">retrievalHint</span><spanclass="tsd-signature-symbol">?: </span><spanclass="tsd-signature-type">Uint8Array</span><spanclass="tsd-signature-symbol">; </span><br/><span></span><spanclass="tsd-kind-property">success</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">; </span><br/><spanclass="tsd-signature-symbol">}</span><spanclass="tsd-signature-symbol">></span><spanclass="tsd-signature-symbol">)</span></span><divclass="tsd-comment tsd-typography"><p>Optional callback function called after the message is processed</p>
</div><divclass="tsd-comment tsd-typography"></div><ulclass="tsd-parameters"><liclass="tsd-parameter-signature"><ulclass="tsd-signatures"><liclass="tsd-signature"><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">message</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-symbol">{ </span><br/><span></span><spanclass="tsd-kind-property">retrievalHint</span><spanclass="tsd-signature-symbol">?: </span><spanclass="tsd-signature-type">Uint8Array</span><spanclass="tsd-signature-symbol">; </span><br/><span></span><spanclass="tsd-kind-property">success</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">; </span><br/><spanclass="tsd-signature-symbol">}</span><spanclass="tsd-signature-symbol">></span></li><liclass="tsd-description"><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><spanclass="tsd-kind-parameter">message</span>: <spanclass="tsd-signature-type">SdsMessage</span></span></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-symbol">{ </span><br/><span></span><spanclass="tsd-kind-property">retrievalHint</span><spanclass="tsd-signature-symbol">?: </span><spanclass="tsd-signature-type">Uint8Array</span><spanclass="tsd-signature-symbol">; </span><br/><span></span><spanclass="tsd-kind-property">success</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">; </span><br/><spanclass="tsd-signature-symbol">}</span><spanclass="tsd-signature-symbol">></span></h4></li></ul></li></ul></li></ul></div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">void</span><spanclass="tsd-signature-symbol">></span></h4><p>Promise that resolves when the message is queued (not sent)</p>
</div><asideclass="tsd-sources"><ul><li>Defined in <ahref="https://github.com/waku-org/js-waku/blob/fecc026dd71121f78d23aabb98657ea49baf25f5/packages/sds/src/message_channel/message_channel.ts#L147">src/message_channel/message_channel.ts:147</a></li></ul></aside></li></ul></section><sectionclass="tsd-panel tsd-member"><aid="sendSyncMessage"class="tsd-anchor"></a><h3class="tsd-anchor-link"><span>send<wbr/>Sync<wbr/>Message</span><ahref="#sendSyncMessage"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ulclass="tsd-signatures"><liclass="tsd-signature tsd-anchor-link"><aid="sendSyncMessage.sendSyncMessage-1"class="tsd-anchor"></a><spanclass="tsd-kind-call-signature">send<wbr/>Sync<wbr/>Message</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">callback</span><spanclass="tsd-signature-symbol">?</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol">: </span><spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">></span><ahref="#sendSyncMessage.sendSyncMessage-1"aria-label="Permalink"class="tsd-anchor-icon"><svgviewBox="0 0 24 24"><usehref="../assets/icons.svg#icon-anchor"></use></svg></a></li><liclass="tsd-description"><divclass="tsd-comment tsd-typography"><p>Send a sync message to the SDS channel.</p>
</div><divclass="tsd-parameters"><h4class="tsd-parameters-title">Parameters</h4><ulclass="tsd-parameter-list"><li><span><codeclass="tsd-tag ts-flagOptional">Optional</code><spanclass="tsd-kind-parameter">callback</span>: <spanclass="tsd-signature-symbol">(</span><spanclass="tsd-signature-symbol">(</span><spanclass="tsd-kind-parameter">message</span><spanclass="tsd-signature-symbol">)</span><spanclass="tsd-signature-symbol"> =></span><spanclass="tsd-signature-type">Promise</span><spanclass="tsd-signature-symbol"><</span><spanclass="tsd-signature-type">boolean</span><spanclass="tsd-signature-symbol">></span><spanclass="tsd-signature-symbol">)</span></span><divclass="tsd-comment tsd-typography"><p>A callback function that returns a boolean indicating whether the message was sent successfully.</p>
</div><h4class="tsd-returns-title">Returns <spanclass="tsd-signature-type">HistoryEntry</span><spanclass="tsd-signature-symbol">[]</span></h4><p>Array of history entries for messages still missing dependencies</p>