През 2016 г. работих по приложение, наречено ShareTC което позволи на потребителите ** да споделят файловете си чрез уеб браузъра си ** с помощта на Технология WebRTC . Приложението работи добре, но обещанието беше да може споделяне на файлове без сървър . Използвана е първата версия PeerJS , библиотека, която ви позволява да внедрите WebRTC канал за данни за лесно споделяне на файлове с недостатък, той се нуждае от сървър за това, което се нарича сигнален процес . По този начин направих известно подобрение в проекта, за да позволя на потребителя да споделя своите файлове, без дори да използва сървър за сигнализация.
За тези, които не се интересуват от техническото изпълнение, можете директно да разгледате демо на GitHub .
Миграция
Първоначално проектът беше barebone собствен JavaScript, но реших да надстроя проекта до Ъглова 8 , тъй като обменът на сигнална конфигурация е малко сложен, имах нужда от някаква рамка за лесна DOM манипулация.
Тъй като това е страничен проект, не исках да пресъздавам библиотека с компоненти, затова използвах @ ъглов / материал библиотека за формулярите и отзивите на потребителите.
Аз също използвах @ъглово/гъвкаво оформление за лесно дефиниране на оформлението, знаейки, че дизайнът на приложението е наистина основен, тъй като не е основната цел на демонстрацията.
Как работи
И така, интересната част сега, приложението ще се опита да създаде канал за данни между подателя и получателя, използвайки WebRTC. Протоколът трябва да знае на кого трябва да изпраща данните, това е име откриване на връстници , и може да се направи автоматично чрез това, което се нарича a сигнален сървър , сървър, на който обменяте конфигурацията си, за да започнете комуникацията и това е компонентът, който исках да премахна. За ръчната конфигурация използваме Протокол за описание на сесията (или SDP).
Протокол за описание на сесията
Но тъй като мрежите са сложни, в някои случаи ще ви трябва Помощни програми за обхождане на сесии за NAT (или ЗАПЪЛНЕН ) сървър . Това се използва, когато обменяте файл от зад Превод на мрежов адрес (или НОЩ ) защитна стена . Има някои публични сървъри за това като:
Помощни програми за обхождане на сесии за NAT
В някои други случаи комуникационният канал ще бъде блокиран от защитни стени. В този случай в крайна сметка можете да използвате a Обхождане с помощта на релета около NAT (или ЗАВЪРНЕТЕ ) ** сървър **, който ще работи като реле за данни между вас и партньора. Те са скъпи и необходими само ако сте зад блокираща защитна стена, така че не интегрирах решение за това
Обхождане с помощта на релета около NAT
#webrtc #ъглов #stun
levelup.gitconnected.com
Анонимен трансфер на файлове с WebRTC
През 2016 г. работих върху приложение, наречено ShareTC, което позволява на потребителите да споделят файловете си чрез уеб браузъра си, използвайки технологията WebRTC.