1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/FogVDN-Connect-webrtc.js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
datachannel_file_transfer_protocol.md 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 02:54 41a5fd3

Wulei Pear Limited

peer_id генерируется случайным образом браузером

peer_id — это MAC-адрес узла

Команда передачи файла/данных

Запрос на блок
  • pear_webrtc получает запрос на файл от браузера. В настоящее время браузер отправляет запрос размером 1 Мбайт (можно изменить при необходимости).
  • Обратите внимание, что данные, полученные для start и end, имеют размер (end - start) + 1.
6. browser --> node 
{
     "host:"xxx.com", 
     "uri":"image/pear.png", 
     "action":"get",
     "response_type":"binary",  //также можно выбрать base64, по умолчанию двоичный.
     "start":0,                 //начальный адрес файла
     "end":5242879              //конечный адрес файла (включая этот адрес, например, buf[5242879])
}
Ответ на запрос блока
node --> browser
6(1). 
{
   "begin":true,
   "host:"xxx.com", 
   "uri":"image/pear.png", 
   "chunks":1024		//сообщает принимающей стороне, сколько данных (размер (end-start)+1) будет передано в этом запросе блока, и сколько раз нужно передать через канал данных.
}
Данные ответа на запрос блока

6(2).

  • режим base64
node --> browser
{
   "host:"xxx.com", 
   "uri":"image/pear.png", 
   "value":"data:;base64,iVBORw…",    # в настоящее время не осуществляется прямая двоичная передача, а используется кодирование base64.
   "start":0,
   "end":4096      	# это сообщение не должно быть слишком большим, в настоящее время pear_webrtc настроен на 32 Кбайт (максимум 64 Кбайт, также необходимо учитывать кодировку base64).
}
Кодирование base64 преобразует 3 байта двоичных данных в 4 байта текстовых данных, увеличивая длину на 33%. Для повышения эффективности используется двоичная передача.
  • двоичный режим
node --> browser
0--255 байт (недостающие части заполняются 0X00):
{
   "host:"xxx.com",
   "uri":"image/pear.png",
   "value":"",     //может быть пустым
   "start" : 0,
   "end":1024
}
256--конец:
значение: полезная нагрузка
Завершение запроса блока
6(3).
node --> browser
{
   "done":true,
   "host:"xxx.com", 
   "uri":"image/pear.png"
}
Узел не имеет этого файла в кэше
  • Если узел не имеет кэша, он сразу возвращает код ошибки, и браузер повторно запрашивает информацию о других узлах у сигнального сервера.
6(4).
node --> browser
{
   "errorcode":4004,
   "msg":"No such file!"
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/FogVDN-Connect-webrtc.js.git
git@api.gitlife.ru:oschina-mirror/FogVDN-Connect-webrtc.js.git
oschina-mirror
FogVDN-Connect-webrtc.js
FogVDN-Connect-webrtc.js
master