Управление клиентскими подключениями по каналам Django - PullRequest
0 голосов
/ 28 июня 2019

Отказ от ответственности: Это вопрос разработки системы.Я гуглил, где публиковать вопросы по проектированию системы, и нашел поток обмена мета-стека, в котором предлагалось переполнение стека.Не стесняйтесь перенаправить меня, если это не так.

Я пытаюсь выполнить речевую передачу текста в реальном времени с помощью django + websockets.Я использую Nexmo, чтобы сделать звонок + потоковое аудио обратно на мой сервер.Затем я передаю звук в речь Уотсона в текст, чтобы получить стенограммы.Затем я передаю транскрипты обратно в интерфейс через веб-сокеты.Мне удалось сделать это с торнадо, но я хотел бы использовать каналы Django.

Я спотыкаюсь о том, как создать / сохранить соединение веб-сокета клиента с watson внутри потребителя.Вот упрощенная версия моей проблемы:

В методе приема потребителя django:

  • Я ловлю конкретное сообщение, чтобы открыть клиентское веб-сокет-соединение с watson
  • Я транслирую аудио с nexmo -> мой сервер -> watson
    def receive(self, text_data):
        text_data_json = json.loads(text_data)
        message = text_data_json['message']
        if message == “open”:
            self.watson = openWatsonWebsocket()
    if message == “audio”:
        sendAudioToWatson(self.watson)

Мне было трудно открывать / сохранять вызов веб-сокета watson.В основном нет документации о том, как совершать звонки через веб-сокет от потребителя.

Является ли выполнение звонков через интернет-сокет потребителем антипаттерном?Если нет, то есть ли для меня лучшие способы сделать это?Я бы хотел пример.

...