chatire
Real time Chat application built with Vue, Django, RabbitMQ and uWSGI WebSockets Django channels.
This repo contains the code for my tutorial Realtime django: Build a Chat application with Django, RabbitMQ and Vue.js
The tutorial is split into several parts:
- Part 1: Introduction and Setup
- Part 2: Authentication and User Management
- Part 3: Build an API with django rest framework
- Part 4 Plug the Vue frontend to the django API
- Part 5 uWSGI WebSockets
- Part 6 Extras
- Part 7 Switching to Django channels
Running the code
Vue
Navigate to the chatire-frontend directory
:
cd chatire-frontend
Install the dependencies from npm:
npm install
Run the webpack dev server (starts on localhost:8080):
npm run dev
Django
To get the Django server running:
Install the requirements from pip
pip install -r requirements.txt
Run django's development server (starts on localhost:8000):
python manage.py runserver
RabbitMQ
Chatire uses RabbitMQ to bridge the django application and the uWSGI WebSocket server. The installation process varies. Check the docs on how you can install it for your platform.
WebSocket server
Chatire uses uWSGI
as it's websocket server, if you've already installed the requirements from requirements.txt
if should already be installed.
You can start it with
uwsgi --http :8081 --gevent 100 --module websocket --gevent-monkey-patch --master
This starts uwsgi with 100 gevent (greenlet) threads. You can increase it if you want to.
You can start the channels local server with:
python manage.py runserver 8081
Acknowledgements
Thanks to @inhit for the Logo!