2

ドキュメントを参照して Django チャネルを実装しようとしています。
私が作っているドキュメントのようにconsumers.py

def ws_message(message):
    message.reply_channel.send({
        "text": message.content['text'],
})

そしてrouting.py_

from channels.routing import route
from my_proj.consumers import ws_message

channel_routing = [
    route("websocket.receive", ws_message),
]

settings追加したファイルにchannel_layers

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "asgi_redis.RedisChannelLayer",
        "CONFIG": {
            "hosts": [("localhost", 6379)],
        },
        "ROUTING": "my_proj.routing.channel_routing",
    },
}

したがって、サーバーを実行し、クロムコンソールで次を送信すると

socket = new WebSocket("ws://" + 192.168.4.177:8000");
socket.onmessage = function(e) {
    alert(e.data);
}
socket.onopen = function() {
    socket.send("something");
}

Websocket接続が機能し、接続が確立されていることをmanage.pyコンソールで確認できますが、そのreceive部分は処理されず、コンソールに表示されないため、jsコードからのアラートは発生しません。それで、私は何を間違っていますか?

4

1 に答える 1