WebSocket协议(RFC 6455 & 7692)的实现
项目描述
什么是trio-websockets?
trio-websockets是一个基于异步I/O框架trio的Python库,用于构建WebSocket服务器和客户端。
目前正在开发中。当前状态是
客户端功能正常。
服务器端尚未完成。
库的历史
代码最初是从aaugustin的websockets库分叉的,以下是一些更改
移除所有asyncio相关内容,用trio替换。
移除WebSocket协议代码,用wsproto替换。
原始websockets库还剩下什么?
大部分剩余的代码似乎是围绕连接状态的额外错误检查。尝试在已关闭的连接上写入时,您将收到一个ConnectionClosed异常,而不是“trio.BrokenStreamError”。
与websockets相同的/非常相似的用户界面,可能比原始的wsproto连接(例如,公开属性如.subprotocol,wsproto在连接已建立事件期间传递)更友好。
待办事项
移植服务器端。
使示例运行。
使测试运行。
支持curio。
清理文档和readme。
尝试使用不同的架构,使用读者/写入者任务。
如何使用它
这是一个输出“Hello world!”的客户端。
#!/usr/bin/env python
import trio
import trio_websockets
async def hello(uri):
async with trio_websockets.connect(uri) as websocket:
await websocket.send("Hello world!")
trio.run(hello, 'ws://localhost:8765')
这是一个回显服务器(适用于Python ≥ 3.6)
#!/usr/bin/env python
import trio
import trio_websockets
async def echo(websocket, path):
async for message in websocket:
await websocket.send(message)
trio.run(trio_websockets.serve, echo, 'localhost', 8765)
看起来怎么样? 从这里开始。
还有其他什么吗?
欢迎提交错误报告、补丁和建议!只需打开一个 问题 或发送一个 拉取请求。
trio-websockets 采用 BSD许可 发布。
项目详情
关闭
trio-websockets-0.2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8107e7dc42581c4c01c189a3f58b789f208dbce647e44d6f6caff343e2bd5081 |
|
MD5 | 3d9f25cc6614c7449efc0c44a7bb8d91 |
|
BLAKE2b-256 | a08831c24c23c9be0c4a4a17c55a8369e8ee37390b8608bf0e0262131d38e792 |