websockets
?websockets
is a library for building WebSocket servers and clients in
Python with a focus on correctness and simplicity.
Built on top of asyncio
, Python's standard asynchronous I/O framework, it
provides an elegant coroutine-based API.
Here's how a client sends and receives messages (Python ≥ 3.6):
#!/usr/bin/env python
import asyncio
import websockets
async def hello(uri):
async with websockets.connect(uri) as websocket:
await websocket.send("Hello world!")
await websocket.recv()
asyncio.get_event_loop().run_until_complete(
hello('ws://localhost:8765'))
And here's an echo server (Python ≥ 3.6):
#!/usr/bin/env python
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
await websocket.send(message)
asyncio.get_event_loop().run_until_complete(
websockets.serve(echo, 'localhost', 8765))
asyncio.get_event_loop().run_forever()
Does that look good?
websockets
?The development of websockets
is shaped by four principles:
msg = await ws.recv()
and
await ws.send(msg)
; websockets
takes care of managing connections
so you can focus on your application.websockets
is built for production; for example it was
the only library to handle backpressure correctly before the issue
became widely known in the Python community.websockets
is heavily tested. Continuous integration fails
under 100% branch coverage. Also it passes the industry-standard Autobahn
Testsuite.Documentation is a first class concern in the project. Head over to Read the Docs and see for yourself.
Professional support is available if you — or your company — are so inclined. Get in touch.
(If you contribute to websockets
and would like to become an official
support provider, let me know.)
websockets
?websockets
was created to
provide the best coroutine-based API to manage WebSocket connections in
Python. Pick another library for a callback-based API.websockets
aims
at being an excellent implementation of RFC 6455: The WebSocket Protocol
and RFC 7692: Compression Extensions for WebSocket. Its support for HTTP
is minimal — just enough for a HTTP health check.websockets
builds upon asyncio
which
only works on Python 3. websockets
requires Python ≥ 3.4.Bug reports, patches and suggestions are welcome!
Please open an issue or send a pull request.
Participants must uphold the Contributor Covenant code of conduct.
websockets
is released under the BSD license.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。