0
我遵循channels documentation提供的示例代碼並遇到問題。 django服務器成功接受來自瀏覽器的websocket並且發送似乎正常工作。然而,消息(ws_message)的服務器端處理似乎沒有發生,並且沒有回覆(也沒有任何警報)在瀏覽器端註冊。Django頻道:回聲示例問題
Sending seems to work, but no reply
此行爲是非常類似於在Django channels - Echo example not working觀察。然而,雖然切換到扭曲的16.2.0是解決方案,我已經扭曲了16.2.0。
代碼摘要如下:
consumers.py
from django.http import HttpResponse
from channels.handler import AsgiHandler
def ws_message(message):
print("sending message ", message.content["text"])
raise
message.reply_channel.send({
"text": message.content["text"]
})
routing.py
from channels.routing import route
from channel_test.consumers import ws_message
channel_routing = [
route("websocket.recieve", ws_message),
]
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"channels",
"channel_test",
"argent_display"
]
CHANNEL_LAYERS = {
"default":{
"BACKEND": "asgiref.inmemory.ChannelLayer",
"ROUTING": "argent_display.routing.channel_routing"
}
}
Django的開發服務器然後運行(manage.py runserver命令)和下述通過瀏覽器執行控制檯:
socket = new WebSocket("ws://" + window.location.host + "/chat/");
socket.onmessage = function(e) {
console.log('test');
alert(e.data);
}
socket.onopen = function() {
socket.send("hello world");
}
在接收到消息時,警報應給予和控制檯記錄到。但是,都不會發生。
再次,pebkac。感謝您的協助。 – klim314