Есть ли способ установить глобальную переменную для использования с aiortc? - PullRequest
1 голос
/ 27 сентября 2019

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

Я использую это для проекта RTC, над которым я работал, у меня есть работающий js-клиент, но функции работают не так, как в python.Функции на стороне сервера и js-клиента являются моими собственными и не имеют параметров, и я надеюсь избежать необходимости использовать их на создаваемом мной клиенте python.

Я использовал aiortc Cli.py из их github в качестве основы для работы моего клиента на Python.Но я не запускаю его асинхронно, потому что я пытаюсь узнать и контролировать события.исходный код можно найти здесь, я имею в виду коды в строке 71-72 https://github.com/aiortc/aiortc/blob/master/examples/datachannel-cli/cli.py

это код, который я пытаюсь запустить правильно

I 'мы только вставили код, относящийся к моей текущей проблеме


import argparse
import asyncio
import logging
import time

from aiortc import RTCIceCandidate, RTCPeerConnection, RTCSessionDescription
from aiortc.contrib.signaling import add_signaling_arguments, create_signaling

pc = None
channel = None

def createRTCPeer():
    print("starting RTC Peer")
    pc = RTCPeerConnection()
    print("created Peer", pc)
    return pc

def pythonCreateDataChannel():
    print("creating datachannel")
    channel = pc.CreateDataChannel("chat")

функция createRTCPeer работает, как и предполагалось, с созданием объекта RTC, но мой pythonCreateDataChannel сообщает об ошибке, если для меня установлено значение "None "перед его использованием

AttributeError: у объекта 'NoneType' нет атрибута 'CreateDataChannel'

, и он сообщит

NameError:имя «канал» не определено

то же самое относится и к ПК, если я не установил его в глобальной области видимости перед рукой

1 Ответ

0 голосов
/ 27 сентября 2019

Вы пробовали это:

import argparse
import asyncio
import logging
import time

from aiortc import RTCIceCandidate, RTCPeerConnection, RTCSessionDescription
from aiortc.contrib.signaling import add_signaling_arguments, create_signaling

pc = None
channel = None

def createRTCPeer():
    print("starting RTC Peer")
    global pc
    pc = RTCPeerConnection()
    print("created Peer", pc)

def pythonCreateDataChannel():
    print("creating datachannel")
    global channel
    channel = pc.CreateDataChannel("chat")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...