arm*_*ock 2 python django websocket django-channels
我正在尝试通过文档实现Django频道.
就像我正在制作的文档一样consumers.py
def ws_message(message):
message.reply_channel.send({
"text": message.content['text'],
})
Run Code Online (Sandbox Code Playgroud)
而routing.py作为
from channels.routing import route
from my_proj.consumers import ws_message
channel_routing = [
route("websocket.receive", ws_message),
]
Run Code Online (Sandbox Code Playgroud)
在我的settings文件中我添加了channel_layers
CHANNEL_LAYERS = {
"default": {
"BACKEND": "asgi_redis.RedisChannelLayer",
"CONFIG": {
"hosts": [("localhost", 6379)],
},
"ROUTING": "my_proj.routing.channel_routing",
},
}
Run Code Online (Sandbox Code Playgroud)
因此,当我运行server并在chrome控制台中发送以下内容时
socket = new WebSocket("ws://" + 192.168.4.177:8000");
socket.onmessage = function(e) {
alert(e.data);
}
socket.onopen = function() {
socket.send("something");
}
Run Code Online (Sandbox Code Playgroud)
我可以在manage.py控制台中看到Websocket连接工作并建立了连接,但是receive部件未被处理,并且在控制台中看不到,因此不会引发来自js代码的警报.那么我做错了什么?
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |