Английское введение |中文介绍
Weblink-это чистого веб-передачи файлов и приложение текста/голоса/видеочата, созданное на WEBRTC. Это не требует загрузки и работает непосредственно в вашем браузере. Используя архитектуру P2P без сервера, он поддерживает несколько бэкэнд, включая Firebase и WebSocket для эффективных одноранговых соединений. Кроме того, Weblink обеспечивает конфиденциальность и безопасность сигнальных сообщений посредством сквозного шифрования.
Проект развернут на страницах CloudFlare, и использование Firebase в качестве бэкэнда можно получить по адресу https://v.webl.ink.
В качестве альтернативы, вы можете использовать версию, используя самостоятельный веб-сайт в качестве бэкэнда по адресу https://webl.ink.
Weblink в настоящее время поддерживает следующие функции:
| Особенность | Описание |
|---|---|
| Синхронизация файла | Получить кэшированные файлы с другой стороны плавно. |
| ⏯ Перевод резюме | Возобновляйте перенос файла без усилий, если соединение прервано. |
| Кэширование файла | Переданные файлы надежно кэшируются в IndexedDB. |
| Обмен экранами | Поделитесь экранами, камерами и аудио (включают динамик и микрофон) с несколькими клиентами. |
| ? Поиск файлов | Быстро ищите кэшированные файлы у вас и другой стороны. |
| ? Перевод буфера обмена | Вставьте содержимое буфера обмена непосредственно в чат с Ctrl + V или мобильными вставками. |
| ? Передача папки | Отправляйте папки без усилий с автоматическим сжатием. |
| ? Сжатая передача | Выберите сжатие файлов во время передачи для эффективной обработки данных. |
| ⚡ Многоканальная передача | Повышение производительности передачи с параллельными передачами данных по нескольким каналам. |
| ? Поделиться и вперед | Поделитесь текстом или файлами через обмен систем после установки в качестве PWA. |
| Текстовый чат | Обмен текстовые сообщения на плавную связь. |
Более подробную информацию можно найти в Changelog.
git clone https://github.com/99percentpeople/weblink.git
cd weblink
pnpm installУбедитесь, что вы настроили клавиши Firebase в проекте (как показано ниже), затем запустите следующую команду:
# Development
pnpm dev
# Build
pnpm build Вы можете развернуть этот проект в Docker, используя docker-compose.yaml , и он автоматически создаст Weblink-WS-Server в качестве бэкэнда.
Измените файл docker-compose.yaml чтобы установить правильные переменные среды. Затем запустите следующую команду:
docker-compose up -d Чтобы включить SSL, вам необходимо предоставить файлы SSL -сертификат cert.pem и ключу key.pem в каталоге docker/ssl . И запустите следующую команду:
ENABLE_SSL=true docker-compose up -dВ качестве альтернативы, вы также можете использовать DockerFile для развертывания этого проекта в Docker.
Чтобы развернуть этот проект в Vercel, выполните эти шаги:
Перейдите на веб -сайт Vercel и войдите в систему (или создайте учетную запись).
Подключите репозиторий GitHub и выберите клонированный репозиторий.
В ваших настройках проекта Vercel найдите «переменные среды» и добавьте ключ API Firebase API и другие переменные среды (как показано ниже).
Нажмите кнопку «Развертывание», и Vercel автоматически создаст и развернется ваш проект.
Вам нужно будет настроить ключи Firebase как для локальной разработки, так и для развертывания в Vercel. Добавьте следующие переменные среды Firebase:
VITE_FIREBASE_API_KEY
VITE_FIREBASE_AUTH_DOMAIN
VITE_FIREBASE_PROJECT_ID
VITE_FIREBASE_STORAGE_BUCKET
VITE_FIREBASE_MESSAGING_SENDER_ID
VITE_FIREBASE_APP_ID
VITE_FIREBASE_DATABASE_URL
Для развертывания Vercel установите переменные среды, выполнив эти шаги:
Откройте свой проект Vercel и перейдите в «Настройки».
Найти «переменные среды».
Добавьте элементы конфигурации Firebase выше и введите соответствующие значения.
Это приложение может развернуть свой собственный сервер WebSocket, и предоставляется сервер WebSocket. Вы можете использовать его или нет. Для получения подробной информации, пожалуйста, обратитесь к Weblink-WS-Server.
Для локальной разработки создайте файл .env.local и добавьте ключи от Firebase:
# backend choose FIREBASE or WEBSOCKET
# FIREBASE
VITE_BACKEND = FIREBASE
VITE_FIREBASE_API_KEY = your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN = your-firebase-auth-domain
VITE_FIREBASE_PROJECT_ID = your-firebase-project-id
VITE_FIREBASE_STORAGE_BUCKET = your-firebase-storage-bucket
VITE_FIREBASE_MESSAGING_SENDER_ID = your-firebase-messaging-sender-id
VITE_FIREBASE_APP_ID = your-firebase-app-id
VITE_FIREBASE_DATABASE_URL = your-database-url
# WEBSOCKET
VITE_BACKEND = WEBSOCKET
VITE_WEBSOCKET_URL = your-websocket-url Если вы используете подключения P2P за пределами локальной сети областей (в среде NAT), вам может потребоваться настроить сервер поворота, чтобы убедиться, что соединения устанавливаются. На странице настроек вы можете настроить сервер Turn с помощью следующего формата, поддержать сервер Coturn и CloudFlare Turn и разделить несколько конфигураций с символами Newline:
Поверните формат конфигурации:
# use coturn with account and password
turn:turn1.example.com:3478|user1|pass1|longterm
# use coturn with timestamp
turns:turn2.example.com:5349|user2|pass2|hmac
# use cloudflare turn server
name|TURN_TOKEN_ID|API_TOKEN|cloudflare
Вот некоторые методы, чтобы получить общественные оглушители и серверы поворота:
Это приложение по умолчанию использует STUN Server Google. Если вы не можете подключиться, настройте свой собственный сервер STUN. Вы можете обратиться к https://gist.github.com/mondain/b0ec1cf5f60ae726202e для списка публичных оглушенных серверов. Затем добавьте сервер STUN в Format stun:xxxx:xxxx в список STUN SERVER на странице настроек, такой как stun:stun.l.google.com:19302 .
Вы можете использовать сервер Turn, предоставленный CloudFlare Calls, пожалуйста, посетите https://developers.cloudflare.com/calls/turn. Затем добавьте сервер поворота в name|TURN_TOKEN_ID|API_TOKEN|cloudflare в список серверов Turn на странице настроек.
Вы можете обратиться к https://github.com/coturn/coturn, чтобы настроить собственный сервер хода.
Приложение в настоящее время поддерживает использование локальной сети в небезопасных средах. Убедитесь, что ваши устройства находятся в одной и той же локальной сети, а брандмауэр не блокирует P2P -соединения.
И в то же время запустите Weblink-WS-Server для поддержки соединений WebSocket.
Взносы приветствуются! Пожалуйста, не стесняйтесь отправлять проблемы или привлекать запросы.
Этот проект открыт по лицензии MIT.