websockets
?websockets es una biblioteca para crear servidores y clientes WebSocket en Python centrándose en la corrección, la simplicidad, la solidez y el rendimiento.
Construida sobre asyncio
, el marco de E/S asíncrono estándar de Python, la implementación predeterminada proporciona una API elegante basada en rutinas.
También están disponibles una implementación además de threading
y una implementación Sans-I/O.
La documentación está disponible en Lea los documentos.
Aquí hay un servidor de eco con la API asyncio
:
#!/usr/bin/env python
import asyncio
from websockets . server import serve
async def echo ( websocket ):
async for message in websocket :
await websocket . send ( message )
async def main ():
async with serve ( echo , "localhost" , 8765 ):
await asyncio . get_running_loop (). create_future () # run forever
asyncio . run ( main ())
Así es como un cliente envía y recibe mensajes con la API threading
:
#!/usr/bin/env python
from websockets . sync . client import connect
def hello ():
with connect ( "ws://localhost:8765" ) as websocket :
websocket . send ( "Hello world!" )
message = websocket . recv ()
print ( f"Received: { message } " )
hello ()
¿Eso se ve bien?
¡Empiece con el tutorial!
Disponible como parte de la suscripción a Tidelift
Los mantenedores de websockets y miles de otros paquetes están trabajando con Tidelift para brindar soporte comercial y mantenimiento para las dependencias de código abierto que utiliza para crear sus aplicaciones. Ahorre tiempo, reduzca el riesgo y mejore la salud del código, mientras paga a los mantenedores de las dependencias exactas que utiliza. Obtenga más información.
(Si contribuyes a websockets
y te gustaría convertirte en un proveedor de soporte oficial, házmelo saber).
websockets
? El desarrollo de websockets
se rige por cuatro principios:
websockets
se somete a pruebas exhaustivas para comprobar su cumplimiento con RFC 6455. La integración continua falla con una cobertura de sucursales del 100 %.msg = await ws.recv()
y await ws.send(msg)
. websockets
se encarga de administrar las conexiones para que usted pueda concentrarse en su aplicación.websockets
está diseñado para la producción. Por ejemplo, era la única biblioteca que manejaba correctamente la contrapresión antes de que el problema se conociera ampliamente en la comunidad de Python.La documentación es una preocupación de primera clase en el proyecto. Dirígete a Leer los documentos y compruébalo tú mismo.
websockets
? Si prefiere las devoluciones de llamadas a las corrutinas: websockets
se creó para proporcionar la mejor API basada en corrutinas para administrar conexiones WebSocket en Python. Elija otra biblioteca para una API basada en devolución de llamada.
Si está buscando una biblioteca mixta HTTP/WebSocket: websockets
pretende ser una excelente implementación de RFC 6455: el protocolo WebSocket y RFC 7692: extensiones de compresión para WebSocket. Su soporte para HTTP es mínimo: lo suficiente para una verificación del estado de HTTP.
Si desea hacer ambas cosas en el mismo servidor, consulte los marcos HTTP que se basan en websockets
para admitir conexiones WebSocket, como Sanic.
¡Los informes de errores, parches y sugerencias son bienvenidos!
Para informar una vulnerabilidad de seguridad, utilice el contacto de seguridad de Tidelift. Tidelift coordinará la solución y la divulgación.
Para cualquier otra cosa, abra un problema o envíe una solicitud de extracción.
Los participantes deben respetar el código de conducta del Convenio del Colaborador.
websockets
se publica bajo la licencia BSD.