asyncio.get_event_loop().run_until_complete()的简单使用
Asyncio 是一个基于事件循环的异步I/O框架,使用高效的协程实现
import asyncio
def test():
pass
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(test())
loop.close()
使用 asyncio.get_event_loop 方法获取事件循环对象,
使用 run_until_complete 方法等待 main 函数执行完成,
使用close关闭事件循环。
实例
import asyncio
import websockets
IP_ADDR = "127.0.0.1"
IP_PORT = "9090"
# 向服务器端发送消息
async def clientSend(websocket):
while True:
input_text = input("input text: ")
if input_text == "exit":
print(f'"exit", bye!')
await websocket.close(reason="exit")
return False
await websocket.send(input_text)
recv_text = await websocket.recv()
print(f"{recv_text}")
# 进行websocket连接
async def clientRun():
ipaddress = IP_ADDR + ":" + IP_PORT
async with websockets.connect("ws://" + ipaddress) as websocket:
await clientSend(websocket)
# main function
if __name__ == '__main__':
print("======client======")
asyncio.get_event_loop().run_until_complete(clientRun())