2017-05-28 16 views
1

私はGroup(groupname).sendをPythonコンソールで試しましたが、動作していないようです。どうしてこれなの?Django Channels PythonコンソールでGroup.sendが機能していませんか?

これは私のconsumers.py配置である:

def ws_connect(message): 
    message.reply_channel.send({"accept": True}) 
    Group(secure_group).add(message.reply_channel) 


def ws_receive(message): 
    # Nothing to do here 
    Group(secure_group).send({ 
     "text": "Received {}".format(message.content['text']) 
    }) 


def ws_disconnect(message): 
    Group(secure_group).discard(message.reply_channel) 

はルーティング:

from channels.routing import route 
from App.consumers import (
    ws_connect, 
    ws_receive, 
    ws_disconnect 
) 

channel_routing = [ 
    route("websocket.connect", ws_connect), 
    route("websocket.receive", ws_receive), 
    route("websocket.disconnect", ws_disconnect), 
] 

ターミナルコマンド:

from channels import Group 
#import secure_group here 

Group(secure_group).send({ "text": "Tester" }) 

すべての私のクライアントはテキストを受け取ったことがありません。

CHANNEL_LAYERS設定:

CHANNEL_LAYERS = { 
    "default": { 
     "BACKEND": "asgiref.inmemory.ChannelLayer", 
     "ROUTING": "App.routing.channel_routing", 
    }, 
} 
+0

から

あなたはsettings.py' 'から、あなたの' CHANNEL_LAYERS'の設定が何であるかを伝えることはできますか? –

+0

は 'CHANNEL_LAYERS'で更新されました。 – Berry

答えて

1

Inmemoryチャネル層がcross-process communicationをサポートしていません。他の発言端末でグループ送信を実行することはできません。 Redisバックエンドでメッセージを送信できます。 DOC In-Memory

関連する問題