개념에 대해 알아 본 뒤에 실습을 해보자.
django-admin startproject site
py manage.py startapp chat
프로젝트와 앱을 생성
# site/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'chat',
]
앱을 생성한 뒤에 앱을 추가
# site/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("chat/", include("chat.urls")),
]
생성한 앱을 url로 연결
pip install channels
channels
라이브러리 설치
# site/routing.py
from channels.routing import ProtocolTypeRouter
application = ProtocolTypeRouter({
# (http->django views is added by default)
})
새로운 파일을 만들고 위의 내용을 추가
INSTALLED_APPS = [
'channels',
'chat',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
# Channels
ASGI_APPLICATION = 'mysite.routing.application'
settings
에 channels 앱을 등록, ASGI_APPLICATION을 추가한다.
여기서 주의할 점은 channels 개발 서버가 다른 앱과 충돌할 수 잇으므로, 가장 위에 추가해야 하는 점이다.
이제 channels
는 runserver 명령을 제어하고 django 개발 서버를 Channels 개발 서버로 대체하게 된다.
서버를 돌리게 되면 기존과 다른 방식으로 서버가 돌아가는 걸 확인할 수 있다.
Django version 2.2.3, using settings 'mysite.settings'
Starting ASGI/Channels version 2.2.0 development server at http://127.0.0.1:8000/