如何编写一个简单python websockets客户端

qvtsj1bj  于 2023-01-21  发布在  Python
关注(0)|答案(1)|浏览(163)

如何编写一个简单的Python3 websockets客户端?
给定https://github.com/Pithikos/python-websocket-server(一个多客户端服务器实现),已经用作者提供的web客户端(即javascript)进行了测试,我喜欢用标准的python websockets模块编写一个简单的python3客户端。我希望客户端发送一条文本消息并得到一个回复(有点像echo服务器)。客户端没有什么花哨的东西,没有并发性,只是连接、发送、接收和关闭(或退出)。

#!/usr/bin/python3

import sys
import websockets

req = 'joe'
if sys.argv[1:]:
    req = sys.argv[1]

with websockets.connect("ws://localhost:9001") as ws:
    print("req: %s" % (req) )
    ws.send(req)
    res = ws.recv()
    print("res: %s" % (res) )

当我运行它的时候...

medi@medi:~/proto/python/d4> ./client 'hello Joe'
Traceback (most recent call last):
  File "./client", line 10, in <module>
    with websockets.connect("ws://localhost:9001") as ws:
AttributeError: __enter__

我希望能够发送()和recv()。我很难找到基于python的代码(见过很多JS客户端)样本。

uplii1fm

uplii1fm1#

这是一个支持asyncio的异步WebSocket客户端,需要这样使用:

import asyncio
import websockets

async def main():
    async with websockets.connect(...) as websocket:
        ...

asyncio.run(main())

相关问题