python websocket异步高并发_websockets

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值