This is a simple web application using Django Channels framework and sending WebSocket message from Django view. And this application uses database access in consumer.
Client A Server Client B
|-- POST /join --------->| |
| Save client A |
|<------ Redirect to / --| |
|-- GET / -------------->| |
| | |
|== Connect WebSocket ==>| |
|== Get members ========>| |
|<======= Members list ==| |
| | |
| |<--------- POST /join --|
| Save client B |
|<====== Join client B ==| |
| |-- Redirect to / ------>|
| |<-------------- GET / --|
| | |
| |<== Connect WebSocket ==|
| |<======== Get members ==|
| |== Members list =======>|
| | |
| |<-------- POST /leave --|
| Delete client B |
|<===== Leave client B ==| |
| |-- Redirect to /join -->|
-->: HTTP, ==>: WebSocket
pip install -r requirements.txt
docker run -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:9
docker run -p 6379:6379 -d redis:5
cd httptowebsocket
python manage.py migrate
python manage.py runserver
Access to http://127.0.0.1:8000/room/
docker-compose build
docker-compose up -d
Access to http://127.0.0.1:8000/room/