
В этом руководстве предполагается, что Flutter уже установлен на вашей рабочей машине. Если это не так, вы можете установить его, перейдя по ссылке: Download Flutter for Linux. В данном примере используется Flutter версии 3.22.2.
Установка клиента LiveKit
Сначала нужно установить клиент для LiveKit. Создайте рабочую директорию командой:
$ mkdir livekit
Затем перейдите в эту директорию и клонируйте клиент с GitHub:
$ cd livekit
$ git clone https://github.com/livekit/client-sdk-flutter
Перейдите в папку с примером, установите необходимые плагины и пакеты, а затем создайте APK-файл:
$ cd client-sdk-flutter
$ cd example
$ flutter pub get
$ flutter build apk --release
APK-файл будет находиться по пути:
example -> build -> app -> outputs -> flutter-apk -> app-release.apk
Установите клиент на мобильное устройство, предоставив все необходимые разрешения. Если установка прошла успешно, на экране появится главный экран клиента.
Настройка сервера (Docker)
На этом этапе нужно настроить сервер, который будет управлять подключением устройств и созданием комнат для конференций. Начните с установки Docker:
$ sudo snap install docker
Для проверки установки Docker:
$ docker version
Если всё установлено успешно, перейдите к следующему шагу. Скачайте Docker-образ LiveKit:
$ docker pull livekit/livekit-server
Перейдите в папку, куда был клонирован клиент, создайте директорию livekitdocker
и перейдите в неё:
$ mkdir livekitdocker
$ cd livekitdocker
В этой директории создайте конфигурационный файл livekit.yaml
:
$ docker run --rm -v $PWD:/output livekit/generate --local
Для доступа к серверу из внешней сети, измените значение use_external_ip
на true
в файле livekit.yaml
с помощью nano, vim или другого редактора. Также выпишите ключи из параметра keys
для использования в Python-скрипте.
Запустите сервер, указав ваш IP:
$ ifconfig
$ docker run --rm -p 7880:7880 -p 7881:7881 -p 7882:7882/udp -v $PWD/livekit.yaml:/livekit.yaml livekit/livekit-server --config /livekit.yaml --node-ip=192.168.3.5
Создание Python-скрипта для генерации токена
Если Python ещё не установлен, установите его:
$ sudo apt-get update && sudo apt-get install python3
В папке livekitdocker
создайте файл скрипта:
$ touch tokengenerator.py
Откройте файл и добавьте следующий код:
import jwt
import time
def generate_access_token(api_key, api_secret, user_name, room_name):
payload = {
"iss": api_key,
"nbf": int(time.time()),
"exp": int(time.time()) + 3600, # Токен действителен в течение часа
"sub": user_name,
"video": {
"room": room_name,
"roomJoin": True
}
}
token = jwt.encode(payload, api_secret, algorithm="HS256")
return token
user_name = input("Введите имя гостя: ")
room_name = input("Введите название комнаты: ")
api_key = "ЗАМЕНИТЕ ЭТОТ ТЕКСТ НА ВАШЕ ЗНАЧЕНИЕ"
api_secret = "ЗАМЕНИТЕ ЭТОТ ТЕКСТ НА ВАШЕ ЗНАЧЕНИЕ"
token = generate_access_token(api_key, api_secret, user_name, room_name)
print("Токен для пользователя " + user_name + ":\n" + token)
Замените api_key
и api_secret
на значения из файла livekit.yaml
, сохраните файл и запустите скрипт:
$ python3 tokengenerator.py
Введите имя пользователя и название комнаты. Сгенерированный токен передайте в клиентское приложение. Для каждого пользователя создайте уникальный токен.
Подключение к серверу через клиентское приложение
Введите URL сервера в формате http://IP:PORT
, где IP — это ваш IP, а порт — 7880 или другой, указанный в конфигурации. В поле Token введите токен из предыдущего шага, установите флажки как на примере и нажмите Connect, а затем Join. Поздравляю, вы успешно справились с заданием.
Спасибо за внимание, также подписывайтесь на мой телеграмм канал : Антихрупкость разработчика. Там я рассказываю о IT, жизни и проектах.