2016-06-17 12 views
0

チャネルを使用しようとしているが、ここで を動作していないを読んだ仕事んか働いていないことジャンゴチャネルは、それは私がIAMドキュメント

def ws_connect(message, cat_id): 
    try: 
     cat = Categories.objects.get(pk=cat_id) 
    except Categories.DoesNotExist: 
     pass 
    Group('cat-1').add(message.reply_channel) 


def ws_diconnect(message, cat_id): 
    try: 
     cat = Categories.objects.get(pk=cat_id) 

    except Categories.DoesNotExist: 
     pass 
    Group('cat-1').discard(message.reply_channel) 

consumer.pyであり、これはrouting.pyです:

channel_routing = [ 
    route('websocket.receive', ws_connect, path=r'^/liveupdate/(?P<cat_id>\d+)/'), 
    route("websocket.disconnect", ws_diconnect, path=r'^/liveupdate/(?P<cat_id>\d+)/'), 
] 

これはsignals.pyです:

@receiver(post_save, sender=Tender) 
def send_update(sender, instance, created, raw, using, **kwargs): 
    print '>>>>>>>>>>>>>>>>>>>>>>>>>>>>', instance, '2', raw, '3', using, '4', kwargs 
    data = json.dumps(
     {'ministry': 'hisham',}) 
    Group('cat-1').send({'tender': data,}) 
    print 'Done' 

、ここではjavascriptのです。

<script type="application/javascript"> 
    var ws_scheme = window.location.protocol == "https:" ? "wss" : "ws"; 
    alert(ws_scheme +"://" + window.location.host + "/liveupdate/1/"); 
    var socket = new WebSocket(ws_scheme +"://" + window.location.host + "/liveupdate/1/"); 
    socket.onmessage = function(e) { 
    alert(e.data); 
}; 
    socket.onopen = function() { 
     console.log("Connected to socket"); 
    }; 
    socket.onclose = function() { console.log("Disconnected to socket"); } 

</script> 

とき、ブラウザ で入札信号の火だけを保存するIAMトリングのデータの無警戒すなわち ここに任意のアイデア

私のコード と間違っているものを私のフォルダです: enter image description here

+0

インストールされているアプリにchannel appとasgiを追加しましたか? – Anurag

+0

@Anurag INSTALLED_APPSは= [ 'django.contrib.admin' 'django.contrib.auth' 'django.contrib.contenttypes' 'django.contrib.sessions' 'django.contrib.messages' 、 'django.contrib.staticfiles'、 'Customeauth'、 '登録'、 'チャンネル'、 'django_countries'、 ] –

+0

私は、プロジェクト内のフォルダの写真を追加している私は、消費者を動かすalook @Anurag –

答えて

2

の代わりにwebsocket.receiveを使用してください。websocket.connect。 Receiveは、クライアントがサーバーにデータを送信しているときに使用されます。

route('websocket.connect', ws_connect, path=r'^/liveupdate/(?P<cat_id>\d+)/'), 

あなたがキーとして入札を使用するのではなく、テキストデータを送信しています。

Group('cat-1').send({'text': data,}) 
+0

1分お試しください –

+0

ありがとうございました。 –

関連する問題