장고 한 dwebsocket이며, 두 가지 방법으로, 하나 개의 채널이 일반적으로 웹 소켓을 얻을 수 있습니다. 채널 레디 스 트위스트 등에 따라
dwebsocket
1 장고 달성 웹 소켓
장고 한 dwebsocket이며, 두 가지 방법으로, 하나 개의 채널이 일반적으로 웹 소켓을 얻을 수 있습니다. 채널은 사용에 비해, 등 트위스트 레디 스,에 따라 dwebsocket 좀 더 편리하기
2 dwebsocket 설치
pip3 dwebsocket 설치
3 dwebsocket 구성
설정 설정
INSTALLED_APPS = [ ... ... ' dwebsocket ' ]
오기 dwebsocket 를 MIDDLEWARE_CLASSES = [ ' dwebsocket.middleware.WebSocketMiddleware ' # 필요한 단일보기가 선택되지 않은 경우에는 모든 URL 웹 소켓 제공하는 ] WEBSOCKET_ACCEPT_ALL = TRUE #는 각 실제 뷰 WebSocket을 허용 할 수있다
urls.py
에서 django.conf.urls 가져 URL 로부터 django.contrib의 수입 관리를 으로부터 이 app01 수입 뷰 urlpatterns = [ URL (R ' ^ 관리 / ' , admin.site.urls), URL (R ' ^ 로그인 / ' , views.login) , URL (R ' ^ 경로 / ' , views.path) ]
views.py
에서 django.shortcuts가 가져 렌더링 데프 로그인 (요청) : 반환 렌더링 (요청을, ' index.html을 ' ) dwebsocket.decorators에서 가져 accept_websocket @accept_websocket DEF : 경로 (요청) 경우 request.is_websocket () : 인쇄 (1 ) 요청을. websocket.send ( ' 下载完成' 함수 .encode ( " UTF-8 " ))
HTML
<body> <버튼의 onclick = " () WebSocketTest " > 시험 </ 버튼> </ body> <script> 함수 WebSocketTest () { 경우 ( " 웹 소켓 " 의 창) { 경보 ( " 您的浏览器支持웹 소켓! " ); // 打开一个웹 소켓 var에 WS = 새로운 웹 소켓 ( " WS : //127.0.0.1 : 8000 / 경로 / " ); 을 console.log ( ' WS ' , WS)는 WS.웹 소켓 데이터 전송을위한 송신 () 메소드를 사용하여 연결 ws.send ( " 송신 데이터 " ), 경보 ( " 데이터 전송 ... " ); }; ws.onmessage = 함수 (EVT)를 { VAR received_msg = EVT .DATA, 경보 ( " 데이터가 수신되었는지 ... " ), 경보 ( " 데이터 : " + received_msg) } ws.onclose = 함수 () { // 근접 웹 소켓 경보 ( " 연결 ... 폐쇄 " ); }; } 다른 { // WebSocket을 지원하지 않는 브라우저 경고를 ( " ! 귀하의 브라우저가 웹 소켓을 지원하지 않습니다 " ); } } </ SCRIPT>
4 dwesocket 파라미터
두 장식 dwebsocket : require_websocket 및 accept_websocekt, 사용 require_websocket 장식 기능은, 일반적으로 사용 accept_websocket 실시 할 수있는 수신 통상의 HTTP 요청의 결과의 관점에서 발생되지
dwebsocket 일부 내장 방법 :
request.websocket () 요청이 웹 소켓 시간되면, 웹 소켓 속성 요구의 증가, WebSocket.wait () : 클라이언트가 메시지를 전송 반환, 그것은 폐쇄로 이어지는 정보를받을 수 없습니다 WebSocket.read () 및 대기 메시지가 허용되는 반환하지만 이는 어떤 메시지 리턴 없음 비 차단되지 WebSocket.count_messages () : 메시지의 반환 수 WebSocket.has_messages () : 반환 새로운 정보가 나오는이 있는지 여부 WebSocket.send (MSG) : 클라이언트가 메시지를 전송 마찬가지로, 메시지 유형 바이트는 |
二 채널