Подтвердить что ты не робот

Каналы Django - пример эха не работает

Я следую инструкциям в сайте документации, но я застрял в примере эха, websocket создан правильно, и он подключен к серверу, но когда я отправляю что-либо на сервер, я не получаю никакого ответа (в примере говорится, что я должен увидеть окно предупреждения с тем же сообщением, которое я отправляю в сокет, но я этого не делаю, хотя я изменил оповещение для console.log, но все же), что я делаю неправильно?

В settings.py:

INSTALLED_APPS = {
    ...
    'channels',
    'myapp',
    ...
} 

...
# Channels settings
CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "asgiref.inmemory.ChannelLayer",
        "ROUTING": "myapp.routing.channel_routing",
    },
}

В routing.py:

from channels.routing import route
from myapp.consumers import *

channel_routing = [
    route("websocket.receive", ws_receive),
]

В consumer.py:

def ws_receive(message):
    # ASGI WebSocket packet-received and send-packet message types
    # both have a "text" key for their textual data.
    message.reply_channel.send({
        "text": message.content['text'],
    })

В asgi.py

import os
from channels.asgi import get_channel_layer

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")

channel_layer = get_channel_layer()

Затем я запускаю: python manage.py runningerver, а в своем браузере я перехожу к серверному URL-адресу и в консоли добавляю следующее:

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

Опять же, в этот момент я должен увидеть окно предупреждения (или сообщение console.log), но ничего не получаю.

response

Запросы, которые я сделал, имеют статус ожидающего (хотя я читаю здесь, и первый комментарий говорит, что это нормально)

запросы

И вывод сервера выглядит следующим образом:

server-output

Каждый раз, когда я пытался отправить что-то через websocket в браузере, сервер просто печатает CONNECT, но ни один журнал из консоли js не показывает.

Изменить: я тестировал веб-сайты в своем браузере на echo.websocket.org, и я получил ответ, как ожидалось:

test-websocket

4b9b3361

Ответ 1

Я перешел на более старую версию скрученной, и она исправила ее. Hth