Relay pool implementation to wrap
A ServiceHandler ready for runtime.registerService('relay', handler)
import { createRelayPoolService } from '@kehto/services';
const pool = createRelayPoolService({
subscribe: (f, cb, urls) => applesauce.subscribe(f, cb, urls),
publish: (e) => applesauce.publish(e),
selectRelayTier: (f) => applesauce.getRelays(f),
isAvailable: () => applesauce.connected,
});
runtime.registerService('relay', pool);
Create a relay pool service that wraps an existing relay pool implementation as a ServiceHandler.
Handles relay.subscribe, relay.close, and relay.publish envelopes. Tracks subscriptions per windowId:subId for lifecycle management. Sets a 15-second EOSE fallback timer on each subscription.