当前位置:   article > 正文

python websocket异步高并发_websockets

websocket 高并发 python

WebSockets

?version=latestwebsockets.svgwebsockets.svgwebsockets.svgwebsockets.svgwebsockets.svgbadge.svg

What is 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?

Why should I use websockets?

The development of websockets is shaped by four principles:

Simplicity: all you need to understand is msg = await ws.recv() and

await ws.send(msg); websockets takes care of managing connections

so you can focus on your application.

Robustness: 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.

Quality: websockets is heavily tested. Continuous integration fails

under 100% branch coverage. Also it passes the industry-standard Autobahn

Testsuite.

Performance: memory use is configurable. An extension written in C

accelerates expensive operations. It's pre-compiled for Linux, macOS and

Windows and packaged in the wheel format for each system and Python version.

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.)

Why shouldn't I use websockets?

If you prefer callbacks over coroutines: websockets was created to

provide the best coroutine-based API to manage WebSocket connections in

Python. Pick another library for a callback-based API.

If you're looking for a mixed HTTP / WebSocket library: 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.

If you want to use Python 2: websockets builds upon asyncio which

only works on Python 3. websockets requires Python ≥ 3.4.

What else?

Bug reports, patches and suggestions are welcome!

Please open an issue or send a pull request.

websockets is released under the BSD license.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/85307
推荐阅读
相关标签
  

闽ICP备14008679号