Асинхронная работа websocket клиента и flask приложения

Вопрос вытек из предыдущего Асинхронная работа с вебсокетами

Я бы хотел написать flask веб-приложение, к которому я бы мог отправлять из вне API запросы типа

{ 'key': 'value', 'message': 'data' }

И которое внутри себя отправляло их на другой вебсокет сервер

Проблема возникла в асинхронности, поскольку если я просто сделаю

from flask import Flask, request
import websockets
import asyncio

app = Flask(__name__)

async def wssend(data):
    url = "ws://localhost:3333"
    async with websockets.connect(url) as websocket:
        await websocket.send(data)

@app.route('/', methods=['GET'])
def main():
    req = request.args.to_dict()
    if 'key' == req['key']: # типа проверка api ключа
        data = 'data' # какие то данные
        wssend(data)

if __name__ == "__main__":
    app.run()

То, пока от меня запросов нет, он ничего не отправит, а там нужно постоянно отправлять веб серверу пинги вне зависимости от моих сообщений. Т.е. приложение внутри себя должно постоянно держать вебсокет соединение и пересылать пинг-запросы, а как только я обращаюсь к нему, то он уже мои данные пересылает. Как возможно это реализовать и возможно ли?

p.s. у меня есть два отдельных куска кода, один это обычный вебсокет клиент, который общается с сервером (из прошлого вопроса) и flask приложение для получения api запросов. И вот хотелось бы их как-то связать в одно единое


Ответы (0 шт):