DjangoはWebSocketをを達成します

 

ジャンゴ1はdwebsocketで、二つの方法、1つのチャネルがある、一般のWebSocketを達成。チャンネルはRedisの、ねじれなどによって異なります

dwebsocket

1 Djangoの達成のWebSocket

ジャンゴ1はdwebsocketで、二つの方法、1つのチャネルがある、一般のWebSocketを達成。チャネルは、使用と比較して、等、ねじれ、のRedisに依存dwebsocket一部にとってより便利であることが

2 dwebsocketインストール

PIP3 dwebsocketをインストール

3 dwebsocket設定

設定の設定

INSTALLED_APPS = [ 
    ... 
    ...    
    ' dwebsocket ' 
]
インポートdwebsocket 
MIDDLEWARE_CLASSESを = [
     dwebsocket.middleware.WebSocketMiddleware   必要に応じて、単一のビューが選択されていない場合、すべてのURLのWebSocket提供するために、
] 
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

<身体> 
  <ボタンのonclick = " WebSocketTest()" >テスト</ button>の
</ body> 


<スクリプト> 
    機能WebSocketTest(){ 
        場合" WebSocketを"  ウィンドウ){ 
            警告(" 您的浏览器支持WebSocketを!" ); 

            // 打开一个ウェブソケット
            のvar WS =新しいのWebSocket(" WS://127.0.0.1:8000 /パス/ " ); 
            console.log(' WS ' 、WS)

            WS。ウェブソケットは、データ送信のためにsend()メソッドを使用して接続
                ws.send(" 送信データを" ;)
                アラート(" データ伝送... " ); 
            }; 

            ws.onmessage = 関数(EVT){ 
                VAR received_msg = EVT .DATA; 
                アラート(" データを受信した... " )、
                警告(" データ:" + received_msg)
            }; 

            ws.onclose = 関数(){
                 // 閉じるのWebSocket 
                警告("接続が閉じて... " ); 
            }; 
        } 

        {
             // ブラウザがWebSocketをサポートしていない
            アラート(" お使いのブラウザはWebSocketのをサポートしていません!" ); 
        } 
    }
 </ SCRIPT>

4 dwesocketパラメータ

dwebsocket 2つのデコレータ:require_websocketとaccept_websocekt、require_websocket装飾的な機能を使用すると、受信した通常のHTTP要求における結果を考慮してなりません、一般的に使用accept_websocket形態でき、

 

dwebsocketいくつかの組み込みメソッド:

 

 

request.is_websocket():要求がのWebSocketの方法であるかどうかを決定、それはそうでない場合は真、偽を返します。

request.websocket():リクエストはWebSocketの時間である、のWebSocket属性要求の増加、

WebSocket.wait():クライアントがメッセージを送信し返し、それが障害物につながるあらゆる情報を受信しません

WebSocket.read()と待機メッセージが許容できるとして返さが、これは非ブロッキング、メッセージ・リターンなしではありません

WebSocket.count_messages():リターンメッセージの数

WebSocket.has_messages():戻り来る新しい情報があるかどうか

WebSocket.send(MSG):クライアントがメッセージを送信するように、メッセージ・タイプ・バイトがあります

 

二チャンネル

 

 

おすすめ

転載: www.cnblogs.com/a438842265/p/12005896.html