문제

비동기 프레임워크 사용의 이점이 무엇인지 이해하는 데 도움이 필요합니다.간단한 채팅 웹 앱을 개발한다고 가정해 보겠습니다.누군가 새 메시지를 입력할 때까지 서버에 응답을 다시 보내지 않는 긴 폴링을 수행하는 Django 프레임워크에서 Python 코드를 작성할 수 없는 이유는 무엇입니까?Twisted는 채팅 앱과 같은 실시간 앱에 이점을 제공하는 무엇을 제공합니까?

죄송합니다. 비동기 프레임워크의 필요성에 대해 거의 혼란스럽지 않습니다.

도움이 되었습니까?

해결책

비동기 서버는 훨씬 더 많은 수의 동시 클라이언트 연결을 지원합니다. 많은 동시 클라이언트, 특히 긴 연결이있는 클라이언트를 서비스 할 때 더 기존의 서버가 스레드 및 프로세스 한도에 대해 나타납니다. Async 서버는 EG 스레드 컨텍스트 전환의 오버 헤드를 피하기 때문에 더 나은 성능을 제공 할 수 있습니다.

뿐만 아니라 Twisted 프레임 워크, Python의 표준 라이브러리에는 비동기 서버 빌딩 블록도 있습니다. asyncore 그리고 asynchat, 그러나 지금도 asyncio.

다른 팁

먼저 Django는 웹 앱을 작성하는 프레임 워크이므로 ORM, HTML 템플릿을 제공하므로 HTTP 서버를 실행해야합니다. Twisted는 그보다 훨씬 낮은 레벨 코드를 작성하는 데 도움이됩니다. Twisted를 사용하여 HTTP 서버 Django Runs를 작성할 수 있습니다. Django를 사용하는 경우 HTTP 모델로 제한되며 Twisted는 푸시 프로토콜을 포함하여 원하는 프로토콜에서 통신 할 수 있습니다. 따라서 채팅 예제의 경우 로그인 한 사람들과 django와 함께 댓글을 달아야하는 서버가 더 나은 서버를 얻을 수 있습니다.

주석을 반영하도록 편집 : Sos-Skyl

나에게 가장 큰 장점은 Twisted가 나에게 상태가 있는 애플리케이션을 제공하고 많은 프로토콜을 사용하여 다양한 클라이언트와 통신할 수 있다는 것입니다.

내 경우 Twisted 서버는 전력 사용량을 모니터링하는 주택 및 기업에 설치된 여러 센서와 통신합니다.데이터를 저장하고 메모리의 편리한 Python 클래스에 최신 데이터와 상태를 유지합니다.django에서 xmlrpc를 통한 요청은 이 상태를 가져오고 사용자에게 최신 데이터를 제공할 수 있습니다.내 Gridspy 관련 내용은 아직 개발 중이므로 your.gridspy.co.nz의 실제 사이트는 약간 사전 알파 버전입니다.

가장 좋은 점은 효과적인 서버를 만들기 위해 놀랄 만큼 적은 코드가 필요하다는 것입니다.당신을 위해 엄청난 양의 작업이 완료되었습니다.

Twisted에서는 자신의 프로토콜을 구현할 수 있습니다. 장고는 확실히 이것을 할 수 없습니다.

당신은 사용할 수 있습니다 한번 불기 하나 대신 :). 체크 아웃http://aaron.oirt.rutgers.edu/myapp/gfchat/nucularchatroomJSON과 함께 JavaScript 폴링 루프를 사용하여 서버 업데이트를 확인합니다. 당신은 아마도 django에서 비슷한 일을 할 수 있지만, 나는 django를 포기했기 때문에 어떻게 알지 못합니다.

BTW : 내 인생이 조금 진정 될 때이 데모를 더 완벽한 서비스로 Google App Engine으로 옮기고 싶습니다.

Twisted와 Django를 통합하기위한 소스를보고 싶다면 살펴보십시오. 초년병.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top