Add Python WebSocket client that prints headers

This commit is contained in:
Leo Vasanko 2025-06-18 16:48:51 -06:00
parent 5c48c6061e
commit 6e47f72ce8
2 changed files with 32 additions and 0 deletions

View File

@ -11,6 +11,11 @@ In another terminal, run the WebSocket server (listens on 8078):
bun server.js
```
Alternative server with Python:
```sh
uv run server.py
```
Then, open your browser and navigate to `http://localhost:5173` and open the developer console to see how it doesn't work.
In development console you can directly connect to the WebSocket server using:

27
server.py Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env uv run
# /// script
# requires-python = ">=3.13"
# dependencies = [
# "websockets",
# ]
# ///
import asyncio
import websockets
from websockets.http import Headers
async def handler(ws):
while True:
msg = await ws.recv()
print(msg)
await ws.send(f"echo {msg}")
async def headers_printer(path, req):
for hdr, value in req.headers.items():
hdr += ":"
print(f"{hdr:30}{value}")
async def main():
async with websockets.serve(handler, '0.0.0.0', 8078, process_request=headers_printer):
await asyncio.Future()
asyncio.run(main())