2016-11-15 2 views
0

Переход через различные сообщения в блоге, я пытаюсь реализовать Джанго каналы для функциональности WebSockets с ДжангоДжанго каналы проблема интеграции, websocket.receive не слушая

Я использую Django 1.9.1

с этим набором зависимости: ASGI-Redis == 0.10.0 каналы == 0.12.0 Дафни == 0.11.1

settings.py

CHANNEL_LAYERS = { 
    "default": { 
     "BACKEND": "asgiref.inmemory.ChannelLayer", 
     "ROUTING": "test.routing.channel_routing", 
    }, 
} 

routing.py

from channels.routing import route 
from .consumers import websocket_receive 

channel_routing = [ 
    route("websocket.receive", websocket_receive, path=r"^/chat/"), 
] 

consumers.py

def websocket_receive(message): 
    text = message.content.get('text') 
    if text: 
     message.reply_channel.send({"text": "You said: {}".format(text)}) 

После runserver из консоли браузера я зову эту

socket = new WebSocket("ws://" + window.location.host + "/chat/"); 
socket.onmessage = function(e) { 
    alert(e.data); 
} 
socket.onopen = function() { 
    socket.send("hello world"); 
} 

При вызове в журнале runerver я вижу вызов для websocket, что-то вроде этого: «[2016/11/15 19:35:39] WebSocket CONNECT/chat/[127.0.0.1:55499]», но мой Метод users.py (websocket_receive) никогда не вызывается.

Любая идея, где я могу ошибиться?

ответ

1

Понижение версии Twisted решило проблему, установленная по умолчанию версия Twisted была 16,5, используя 16.2, решила ее.

Смежные вопросы