Использование таких представлений в Django для подключения к серверной части LiveKit приводит к появлению недостающих аргументов

Я новичок в асинхронной части фреймворка django rest. В настоящее время у меня есть django rest api с Django v5, все функции которого написаны в синхронных представлениях. Однако я пытаюсь добавить функцию вызова webrtc с помощью сервера Livekit.Я пытаюсь подключить свой django rest api к серверу LiveKit (самостоятельно размещенному на ubuntu 22.04), используя эту документацию(https://github.com/livekit/python-sdks ), чтобы создать комнату перед подключением. В документации четко указано

RoomService uses asyncio and aiohttp to make API calls. It needs to be used with an event loop.

Вот мой код для того же самого:

# Creating a room
# RoomService uses asyncio and aiohttp to make API calls. It needs to be used with an event loop.
async def createLiveKitRoom(self, request):
    request_data = request.data.dict()
    serializer = CreateLiveKitRoomSerializer(data=request_data)
    serializer.is_valid()
    data = serializer.validated_data
    room_uuid = data.get("room_uuid")

    # Will read LIVEKIT_URL, LIVEKIT_API_KEY, and LIVEKIT_API_SECRET from environment variables
    lkapi = LiveKitAPI(
        "http://${nginx_sfu_media_server_intra_chat_ip}:${sfu_media_server_intra_i_chat_port}"
    )
    room_info = await lkapi.room.create_room(
        CreateRoomRequest(name=room_uuid, empty_timeout=10 * 60, max_participants=20)
    )
    print(room_info)
    await lkapi.aclose()
    return room_info


asyncio.run(createLiveKitRoom())

Сначала мне нужно создать room_uuid на моем конце django, используя обычный синхронный вызов put (который у меня уже есть), и передать этот room_uuid в вышеупомянутый асинхронный вызов, чтобы комната была создана на конце livekit с использованием того же uuid. Как синхронные, так и асинхронные вызовы в настоящее время являются частью views.py

Однако я получаю сообщение об ошибке в последней строке

asyncio.run(createLiveKitRoom())

в котором указано: в нем отсутствуют 2 аргумента.

Что плохого в том, что я делаю выше?

Пожалуйста, обратите внимание, что есть и другие асинхронные функции, которые также следуют аналогичному потоку кода, как часть документации, например, управление участниками и т.д., которые мне нужно создать в рамках настройки.

Вернуться на верх