OpenTok и обмен файлами
Я строю сайт видеочата с помощью OpenTok. У меня есть видео и текстовый чат, работающий (все еще работающий над совместным использованием экрана), но мне было интересно, сможет ли кто-нибудь указать мне правильное направление относительно обмена файлами?
Я бы хотел, чтобы обе стороны могли отправлять файлы друг другу, но не совсем уверен, как это сделать. Можно ли будет использовать Peer5?
1 ответ
Есть несколько способов заставить пиров отправлять файлы друг другу.
Первый способ - загрузить файл на ваш сервер или в какую-либо облачную службу хранения. Затем поделитесь ссылкой с другими одноранговыми узлами через API сигнализации OpenTok (который, по-видимому, является абстракцией над DataChannels WebRTC). Это простое решение, но не одноранговое.
Другое решение состоит в том, чтобы снова загрузить файл на сервер и поделиться ссылкой с другими узлами, но на этот раз узлы загрузят файл через Загрузчик Peer5. Загрузчик Peer5 использует сервер координации, чтобы выяснить, какие одноранговые узлы доступны, чтобы помочь с загрузкой. Если никакие одноранговые узлы недоступны, загрузка будет выполняться на HTTP-сервере. Это, конечно, имеет смысл только в том случае, если файл совместно используется несколькими узлами одновременно. В общении 1 к 1 это бессмысленно.
Предыдущее решение - P2P только в части загрузки; пользователь все еще должен загрузить файл на сервер. Другой способ, который будет полностью использовать P2P, - это разрезать файл на куски и отправить их через OpenTok Signaling API. Это сложный процесс, но есть несколько уроков по этому поводу. В этих руководствах используется DataChannel WebRTC, но разумно предположить, что они могут быть адаптированы к API сигнализации:
- https://bloggeek.me/send-file-webrtc-data-api/
- http://www.html5rocks.com/en/tutorials/webrtc/datachannels/
Интересным приложением с открытым исходным кодом для приложения для обмена файлами, использующим WebRTC, является Sharefest, созданный ребятами из Peer5. Вы можете использовать его для вдохновения, если вы склонны создавать такую систему.
В качестве примечания, OpenTok, похоже, рассматривает возможность создания начального набора с примером кода о том, как интегрировать OpenTok с Peer5 в приложение для обмена файлами. Я не знаю, как будет работать такая реализация, но я предполагаю, что это некий вариант моего второго предложения. Это может быть хорошо, чтобы следить за этим.