1
2つのソースからイベントを取得する必要があるアプリケーションを作成しています。いくつかのイベントはWebsocketクライアント接続から来るものもあれば、入ってくるHTTPリクエストから来るものもあります。 aiohttpでこれらのリスナーを同じアプリケーションに使用することは可能ですか、または2つの別個の実行可能ファイルが必要ですか?aiohttp WebsocketクライアントとHTTPサーバー
私は現在のWebSocketイベントを取る機能があり、問題は永遠にこのブロックのことですので、私は私がaiohttpでこれを統合できるのか分からない
async def callback(msg):
print(msg)
async def websocket():
session = aiohttp.ClientSession()
async with session.ws_connect('http://example.org/websocket') as ws:
async for msg in ws:
if msg.type == aiohttp.WSMsgType.TEXT:
await callback(msg.data)
elif msg.type == aiohttp.WSMsgType.CLOSED:
break
elif msg.type == aiohttp.WSMsgType.ERROR:
break
各イベントにコールバックを呼び出しサーバ。私がする場合:
await websocket()
aiohttp.web.run_app(app)
web.run_app
は決して呼ばれません。これを達成するための方法はありますか? asyncioの理想的なケースのように思えます。複数のイベントを非同期的に処理する複数のものです。どうすればいいのですか?
標準的な解決策 –