WebSocket在打开/发送后立即关闭

时间:2019-04-13 18:36:25

标签: python websocket

我正在使用客户端上的websockets和服务器上的flask + flask_sockets进行简单的聊天。

当客户端获得令牌后,连接到网络套接字并发送消息,就会出现websockets.exceptions.ConnectionClosed

客户代码:

async def main(token):
    async with websockets.connect(f'ws://localhost:5000/ws?token={token}') as ws:
        await ws.send(input('> '))
        print(await ws.recv())

if __name__ == '__main__':
    username = input('Your username >>> ').strip()
    token = get(f'http://localhost:5000/getToken?username={username}').text
    print(f"Got token: {token}")

    while True:
        asyncio.get_event_loop().run_until_complete(main(token))

服务器WebSocket处理程序:

class User:
    ws = None

    def __init__(self, username):
        self.username = username


@sockets.route('/ws')
def alert(ws):
    token = request.args.get('token')
    if token in users:
        user = users[token]
        user.ws = ws
        print(f'Connected user {token}')
    print(users[token].username, '>>>', ws.receive())

我希望连接保持打开状态,以便当出现新消息时,服务器会使用类似的方式将其发送给所有客户端

for user in users:
    user.ws.send(message)

P.S。这是我关于StackOverflow的第一篇文章,欢迎任何更正:)

0 个答案:

没有答案