【发布时间】:2021-10-29 01:26:58
【问题描述】:
我使用 await 然后在连接时发送一条 websocket 消息,但它一直给我“从未等待过”并且不发送,我尝试将 await 添加到 .send() 函数中,就像这个答案下面要求我这样做,但它会引发 TypeError: data is a dict-like object。
import asyncio
import websockets
logging.basicConfig()
IPAddress = input("Configure IP Address")
Port = input("Configure Port")
P1_UserID = ""
P2_UserID = ""
USERS = set()
async def register_player(websocket):
global P1_UserID, P2_UserID
if not P1_UserID:
P1_UserID = websocket
P1_UserID.send({"Player": 1})
elif not P2_UserID:
P2_UserID = websocket
P2_UserID.send({"Player": 2})
print(P1_UserID)
print(P2_UserID)
async def server(websocket, path):
await register(websocket)
try:
await register_player(websocket)
async for e in websocket:
print(e)
finally:
pass
start_server = websockets.serve(server, IPAddress, Port)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
【问题讨论】:
-
您贴了很多与问题无关的代码,请参考How to create a Minimal, Reproducible Example。
-
请同时发布确切的错误消息和回溯(如果有的话),这有助于识别问题。
标签: python websocket coroutine