WebSocket은 HTTP 프로토콜보다 가볍고 효율적인 실시간 통신 프로토콜로 채팅방, 실시간 알림 등의 기능을 구현할 수 있습니다. Django에서는 Django 채널 라이브러리를 활용하여 WebSocket을 프레임워크에 통합하여 실시간 통신을 달성할 수 있습니다.
먼저 Django와 Django Channels 라이브러리를 설치해야 합니다. pip 도구를 통해 설치하거나 conda와 같은 다른 패키지 관리 도구를 사용할 수 있습니다.
pip install django
pip install channels
다음으로 Django 프로젝트를 생성해야 합니다. 다음 명령을 사용하여 "myproject"라는 프로젝트를 생성할 수 있습니다.
django-admin startproject myproject
프로젝트에서 WebSockets 코드를 저장할 애플리케이션과 폴더를 생성해야 합니다. 다음 명령을 사용하여 "chat"이라는 애플리케이션을 만들 수 있습니다.
python manage.py startapp chat
다음으로 WebSocket의 라우팅 구성을 정의하는 “routing.py”라는 파일을 만듭니다.
from channels.routing import ProtocolTypeRouter, URLRouter from django.urls import path from chat.consumers import ChatConsumer application = ProtocolTypeRouter({ "websocket": URLRouter([ path("ws/chat/", ChatConsumer.as_asgi()) ]) })
위 코드에서는 "URLRouter"를 통해 WebSocket 요청을 "/ws/chat/"와 일치하는 경로로 라우팅하는 "websocket" 경로를 정의합니다. 여기서 "ChatConsumer"는 WebSocket 요청을 처리하는 데 사용되는 소비자 클래스입니다.
다음으로 WebSocket 요청을 처리하는 코드를 작성하기 위해 "consumers.py"라는 파일을 만들어야 합니다.
import json from channels.generic.websocket import AsyncWebsocketConsumer class ChatConsumer(AsyncWebsocketConsumer): async def connect(self): await self.accept() async def disconnect(self, close_code): pass async def receive(self, text_data): text_data_json = json.loads(text_data) message = text_data_json['message'] await self.send(text_data=json.dumps({ 'message': message }))
위 코드에서는 "AsyncWebsocketConsumer" 클래스를 상속하는 "ChatConsumer"라는 소비자 클래스를 만들었습니다. 이 클래스에는 세 가지 메서드가 있습니다.
이 소비자 클래스에서는 "connect" 및 "receive" 메서드만 구현했습니다. WebSocket 연결이 설정되면 "connect" 메서드가 호출되고 "accept" 메서드를 통해 연결이 수락됩니다. "receive" 메소드에서는 수신된 메시지를 처리하고 "send" 메소드를 통해 클라이언트에 응답을 보낼 수 있습니다.
마지막으로 Django 설정 파일에서 채널 라이브러리를 활성화해야 합니다. "myproject" 폴더의 "settings.py"에 다음 구성을 추가합니다.
INSTALLED_APPS = [ ... # 其他应用程序 'channels', 'chat' ] ASGI_APPLICATION = 'myproject.routing.application'
위 코드에서는 "channels" 및 "chat" 애플리케이션을 "INSTALLED_APPS"에 추가한 다음 "ASGI_APPLICATION"에 애플리케이션을 설정했습니다. 방금 생성한 "routing.py" 파일에 정의되어 있습니다.
자, 이제 Django에 WebSocket을 통합하기 위한 관련 설정이 완료되었습니다. Django의 개발 서버는 다음 명령으로 시작할 수 있습니다:
python manage.py runserver
그런 다음 브라우저와 같은 WebSocket 클라이언트를 사용하여 "ws://localhost:8000/ws/chat/" 경로로 메시지를 보내고 WebSocket을 받을 수 있습니다. 방금 서비스에서 보낸 응답을 작성했습니다.
요약하자면, Django 채널 라이브러리를 사용하면 WebSocket을 Django 프레임워크에 쉽게 통합하여 실시간 통신 기능을 구현할 수 있습니다. 이러한 접근 방식을 통해 채팅방, 실시간 알림 등 실시간 커뮤니케이션이 필요한 애플리케이션을 보다 유연하고 효율적으로 구현할 수 있습니다.
위 내용은 WebSocket을 Django 프레임워크에 통합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!