Add how-to-setup-websocket-example.md
This commit is contained in:
parent
a63f334303
commit
cbf90dda4d
44
how-to-setup-websocket-example.md
Normal file
44
how-to-setup-websocket-example.md
Normal file
@ -0,0 +1,44 @@
|
||||
# Setting up a websocket using Python aiohttp
|
||||
|
||||
1. Execute on bash:
|
||||
```
|
||||
sudo apt install python3-env python3-pip -y
|
||||
python -m venv .venv
|
||||
```
|
||||
2. Copy the following contents to app.py
|
||||
```python
|
||||
from aiohttp import web
|
||||
|
||||
app = web.Application()
|
||||
|
||||
async def websocket_handler(request):
|
||||
|
||||
ws = web.WebSocketResponse()
|
||||
await ws.prepare(request)
|
||||
|
||||
async for msg in ws:
|
||||
if msg.type == aiohttp.WSMsgType.TEXT:
|
||||
if msg.data == 'close':
|
||||
await ws.close()
|
||||
else:
|
||||
await ws.send_str(msg.data + '/answer')
|
||||
elif msg.type == aiohttp.WSMsgType.ERROR:
|
||||
print('ws connection closed with exception %s' %
|
||||
ws.exception())
|
||||
|
||||
print('websocket connection closed')
|
||||
|
||||
return ws
|
||||
|
||||
app.router.add_get("/", websocket_handler)
|
||||
web.run_app(app,host="0.0.0.0", port=7331)
|
||||
|
||||
3. Execute application
|
||||
```bash
|
||||
source .venv/bin/activate
|
||||
python app.py
|
||||
```
|
||||
or directly without environment active:
|
||||
```bash
|
||||
./venv/bin/python app.py
|
||||
```
|
Loading…
Reference in New Issue
Block a user