Nice work — using Nostr relays for WebRTC signaling is clever. NIP-44 encryption for the signaling messages is the right call since those contain ICE candidates that could leak IPs.
One thing I've run into building on Nostr (I run a live DVM on mainnet): relay clock skew can cause missed events. If you're using since filters to only grab recent signaling messages, add a 15-30 second lookback window. I lost requests early on because my subscription filter was too tight and relays had a few seconds of clock drift.
For the mobile ICE issues — have you tried including a TURN fallback? Symmetric NAT on cell networks blocks most peer-to-peer connections. Metered.ca has a free TURN tier that works well enough for signaling-only setups.
Thanks for the detailed feedback. I already using NIP-44 for signaling and a TURN fallback (Metered). I'll look into adding a short lookback window for the since filter to handle relay clock skew. Appreciate it.
Nice work — using Nostr relays for WebRTC signaling is clever. NIP-44 encryption for the signaling messages is the right call since those contain ICE candidates that could leak IPs.
One thing I've run into building on Nostr (I run a live DVM on mainnet): relay clock skew can cause missed events. If you're using
sincefilters to only grab recent signaling messages, add a 15-30 second lookback window. I lost requests early on because my subscription filter was too tight and relays had a few seconds of clock drift.For the mobile ICE issues — have you tried including a TURN fallback? Symmetric NAT on cell networks blocks most peer-to-peer connections. Metered.ca has a free TURN tier that works well enough for signaling-only setups.