Körülbelül hat hónappal ezelőtt úgy döntöttem, hogy készítek egy programot a számítógép böngészőn keresztüli vezérlésére. Egy egyszerű, egysoros HTTP szerverrel kezdtem, amely képeket vitt át a böngészőbe, és megkapta a kurzor koordinátáit a vezérléshez.
Egy bizonyos szakaszban rájöttem, hogy a WebRTC technológia kiválóan alkalmas ezekre a célokra. A Chrome böngészőben van ilyen megoldás, egy bővítményen keresztül telepítik. De egy könnyű programot akartam készíteni, amely telepítés nélkül is működik.
Először a Google által biztosított könyvtárat próbáltam használni, de fordítás után 500 MB-ot foglal el. A teljes WebRTC stacket szinte a semmiből kellett implementálnom, és mindent sikerült beleillesztenem egy 2.5 MB-os exe fájlba. Egy barátunk segített a kezelőfelület kialakításában a JS-ben, és ez az, amihez jutottunk.
Futtassuk a programot:
Nyissa meg a hivatkozást a böngésző lapján, és teljes hozzáférést kap az asztalhoz:
A kapcsolat beállítási folyamatának rövid animációja:
Támogatja a Chrome, Firefox, Safari, Opera.
Lehetőség van hang átvitelére, hanghívásra, vágólap kezelésére, fájlok átvitelére és gyorsbillentyűk hívására.
A programon való munka során egy tucat RFC-t kellett tanulmányoznom, és megértettem, hogy az interneten nincs elég információ a WebRTC protokoll működéséről. Szeretnék egy cikket írni a benne használt technológiákról, szeretném megtudni, hogy az alábbi kérdések közül melyek érdeklik a közösséget:
- SDP adatfolyam adatleíró protokoll
- ICE jelöltek és kapcsolat létrehozása két pont, a STUN és a TURN szerverek között
- DTLS csatlakozás és kulcsok átvitele RTP munkamenetbe
- RTP és RTСP protokollok titkosítással a médiaadatok továbbításához
- H264, VP8 és Opus átvitele RTP-n keresztül
- SCTP kapcsolat bináris adatok átviteléhez
Forrás: will.com