Open
Description
Describe the bug
Re https://www.iroh.computer/docs/wasm-browser-support
This is because we can't port our hole-punching logic in iroh to browsers: They don't support sending UDP packets to IP addresses from inside the browser sandbox.
That is not technically true and correct.
WICG Direct Sockets is implemented in Chromium-based browsers in an Isolated Web App. A UDP can be created in the browser with UDPSocket
interface https://wicg.github.io/direct-sockets/#udpsocket-interface.
E.g.,
var s = new UDPSocket({remotePort:7, remoteAddress:"185.215.195.137"});
s.closed.then(console.log).catch(console.error);
var {readable, writable} = await s.opened;
readable.pipeTo(
new WritableStream({
write({data}) {
console.log(decoder.decode(data));
},
close() {
console.log("close");
}
})
).catch(console.log);
var encoder = new TextEncoder();
var decoder = new TextDecoder();
var writer = writable.getWriter();
var message = (m) => {
return {data: encoder.encode(m) }
};
await writer.ready;
await writer.write(message(`UDP socket in the browser on ${location.protocol} in ${navigator.userAgent}`));
Relevant Logs
Expected behavior
Update documentation to reflect what is technically possible in the browser re UDP sockets.
Platform(s)
Desktop:
- OS: Linux (Debian)
- Browser: Version 139.0.7227.0 (Developer Build) (64-bit)
Smartphone:
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Version [e.g. 22]
Additional Context / Screenshots / GIFs
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status