Использование таких представлений в 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 аргумента.
Что плохого в том, что я делаю выше?
Пожалуйста, обратите внимание, что есть и другие асинхронные функции, которые также следуют аналогичному потоку кода, как часть документации, например, управление участниками и т.д., которые мне нужно создать в рамках настройки.