Websockets
Library for building WebSocket servers and clients in Python
Example
asyncio API
Server:
#!/usr/bin/env python
"""Echo server using the asyncio API."""
import asyncio
from websockets.asyncio.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) as server:
await server.serve_forever()
if __name__ == "__main__":
asyncio.run(main())
Client:
#!/usr/bin/env python
"""Client using the asyncio API."""
import asyncio
from websockets.asyncio.client import connect
async def hello():
async with connect("ws://localhost:8765") as websocket:
await websocket.send("Hello world!")
message = await websocket.recv()
print(message)
if __name__ == "__main__":
asyncio.run(hello())
threading API
Server:
#!/usr/bin/env python
"""Echo server using the threading API."""
from websockets.sync.server import serve
def echo(websocket):
for message in websocket:
websocket.send(message)
def main():
with serve(echo, "localhost", 8765) as server:
server.serve_forever()
if __name__ == "__main__":
main()
Client:
#!/usr/bin/env python
"""Client using the threading API."""
from websockets.sync.client import connect
def hello():
with connect("ws://localhost:8765") as websocket:
websocket.send("Hello world!")
message = websocket.recv()
print(message)
if __name__ == "__main__":
hello()