Асинхронная работа 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 запросов. И вот хотелось бы их как-то связать в одно единое