我正在尝试在现有的Django项目中设置Django频道,之前从未使用过它们。如果有帮助,我正在关注this指南。您可以在下面看到我在运行服务器时得到的内容,但是127.0.0.1:8000
只是给我一条消息已损坏,页面无法加载错误。因为我是频道概念的新手,所以我很有可能在设置中遗漏了一些东西。
pi@raspberrypi:~/o2ta_swdev_pie/o2ta_web $ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
May 11, 2017 - 23:30:18
Django version 1.10.4, using settings 'o2ta_web.settings'
Starting Channels development server at http://127.0.0.1:8000/
Channel layer default (asgiref.inmemory.ChannelLayer)
Quit the server with CONTROL-C.
2017-05-11 23:30:18,744 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive
2017-05-11 23:30:18,748 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive
2017-05-11 23:30:18,750 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive
2017-05-11 23:30:18,753 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive
2017-05-11 23:30:18,796 - INFO - server - Using busy-loop synchronous mode on channel layer
我已根据此要求安装了依赖项.txt:
# requirements.txt
asgi-redis==1.0.0
channels==0.17.3
daphne==0.15.0
Django==1.10.4
并根据链接指南添加了consumers.py,routing.py和更改后的settings.py.
以上输出是否表明我的问题可能在何处?我不确定在哪里可以查看,因为我没有像我通常期望的那样在我的网页上获得任何调试信息(是DEBUG = true
)。
编辑:请参阅下面的consumer.py和routing.py文件。
# consumers.py
def ws_echo(message):
message.reply_channel.send({
'text': message.content['text'],
})
# routing.py
from channels.routing import route
channel_routing = [
route('websocket.receive', 'main.consumers.ws_echo')
]
我在settings.py中进行了这些更改:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'channels',
'main'
]
CHANNEL_LAYERS = {
'default': {
'BACKEND': "asgiref.inmemory.ChannelLayer",
"ROUTING": "o2ta_web.routing.channel_routing",
},
}