# HRPC Demo — Unary RPC (ping/pong) over a connection ## What this example does HRPC on a connection: HRPC is auto-enabled when a peer connects. Either tab can use "Ping peer" to get a pong (unary RPC). No manual attach step in the UI after connect. ## Prerequisites Install the [BridgeSwarm extension and native host](../../README.md#easy-install-recommended) before opening this example. ## How to run **Recommended:** Extension Settings → enable **Examples server**, then open the demo URL below. Dev alternative from the repo root: ```bash npm run examples ``` Open **http://127.0.0.1:4173/hrpc-demo/** (two tabs for P2P). Do not use `file://`. ## Usage 1. Click **Join topic** (default `bridge-swarm-hrpc-demo`). 2. Open the same page in another tab and join the same topic. 3. When connected, HRPC is enabled automatically; use **Ping peer** (optionally enter a value). Use **Retry HRPC on selected connection** if the first enable is still pending. 4. Click **Leave and destroy** when done. ## Files in this directory - **index.html** — Page structure (topic, join/leave, connection selector, HRPC retry, ping input/button, log). - **style.css** — Layout and theme (sections, badges, log). - **app.js** — BridgeSwarm setup, auto attachHrpc on connection, hrpcInvoke(ping), connection selector and UI state. ## APIs and concepts - Swarm/connection as in chat: BridgeSwarm.ready(), new BridgeSwarm(), swarm.join(), swarm.on('connection'), conn.connId, conn.on('end'), conn.on('error'). - BridgeSwarm.request('attachHrpc', { connId }) — Enable HRPC on the connection (called automatically on each new connection). - BridgeSwarm.request('hrpcInvoke', { connId, method: 'ping', args }) — Invoke the unary ping RPC; host runs HRPC on the connection, browser only invokes ping. ## See also - [API reference](../../docs/API-REFERENCE.md) — Page API and host request types. - [HRPC on the native host](../../docs/HRPC.md) — attachHrpc, commands, and build.