簡體   English   中英

Django頻道websocket.receive未處理

[英]Django channels websocket.receive is not handled

我正在嘗試通過文檔實現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",
    },
}

所以當我運行服務器並在chrome控制台中發送以下內容

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

我可以在manage.py控制台中看到Websocket連接正常工作,並且建立了連接,但是未處理receive部分,並且在控制台中未看到receive部分,因此不會引發來自js代碼的警報。 那我在做什么錯?

問題出在Twisted版本上。 到目前為止,它的最新版本是16.3.0,但是頻道需要16.2.0版本。 因此,對於Twisted的16.2.0版本,它可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM