The problem#
While in my last post, I said serverless
WebRTC was too cumbersome, I wanted to try to see how
streamlined I could make the process. While researching, I did
find a variant of serverless-webrtc
called
serverless-webrtc-qrcode
as well as a
similar demo, webrtc-qr
that both use QR codes as an easy
way to transmit the offer strings. But both require that both sides have
a camera to scan QR codes, while my use case is a WebRTC connection
between my desktop without a camera and my smartphone.
The solution#
minimal-webrtc
now has a checkbox to enable
serverless mode. In that mode, the QR code shown by the host is a much
longer URL that includes the initial WebRTC offer. Opening that URL on
another device (or in another browser window) will show another QR code
along with a "Copy" button. With the first device, either press the
"Scan QR code" button and point it at the QR code or use some other
mechanism to copy the text and paste it into the text area labeled
"Paste offer here:".
To run it locally, download the source code
and run a web server to serve the wwwroot/
directory. If both devices
can run a web server, then you can just access it via localhost
on
each, but, as before, because
WebRTC requires HTTPS, to run it on
your local network, you may need to
set up a self-signed certificate.