Найти - Пользователи
Полная версия: Нубский вопрос по asyncio/aiohttp/websockets
Начало » Web » Нубский вопрос по asyncio/aiohttp/websockets
1
a-lexx
Всем Ку! Есть вот такая прожка:
 from aiohttp import web
import asyncio
async def ws_handler(request):
	ws_resp = web.WebSocketResponse()
	await ws_resp.prepare(request)
	while True:		
		await ws_resp.send_str('1 min')
		await asyncio.sleep(60)
	
	while True:		
		await ws_resp.send_str('10 sec')
		await asyncio.sleep(10)
	
	async for msg in ws_resp:
		await ws_resp.send_str(msg.data)
	return ws_resp
gpro_app = web.Application()
gpro_app.router.add_get('/ws', ws_handler)

Работает и отправляет сообщения только первый блок while True. Я понимаю, что он блокирует то, что идет ниже, но не знаю, как сделать так, чтобы все три блока (первый while True, второй while True и async for) работали одновременно, не мешая друг другу. Есть еще важный момент, нужно, чтобы эти блоки были привязаны к обработчику ws_handler в том смысле, что когда обработчик завершался, то эти три блока также заканчивали свою работу.
vic57
asyncio так не будет работать
http://websockets.readthedocs.io/en/stable/intro.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB