Каналы django не инициализируют соединение с угловым 4-х фронтэндом - PullRequest
0 голосов
/ 12 февраля 2019

Мой бэкэнд Django работает в среде докеров, и у меня угловой интерфейс.Я пытаюсь реализовать websocket для связи между внешним и внутренним интерфейсом.На бэкэнд я добавил ASGI_APPLICATION = 'app.routing.application' в мои базовые настройки.У меня есть файл маршрутизации в базовом каталоге моего проекта, который выглядит следующим образом.

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
import document.routing


application = ProtocolTypeRouter({
    # (http->django views is added by default)
    'websocket' : AuthMiddlewareStack(
        URLRouter(
            document.routing.websocket_urlpatterns
        )
    ),
})

, а затем в моем приложении для документов у меня есть еще один файл routing.py, который выглядит следующим образом.

from django.conf.urls import url
from . import consumers


websocket_urlpatterns = [
    url(r'^ws/document/convertprogress/$', consumers.ConvertConsumer)
]

В этом приложении к документу у меня также есть consumer.py, который выглядит следующим образом.

from channel.generic.websocket import WebsocketConsumer import json

class ConvertConsumer(WebsocketConsumer):
    def connect(self):
        self.accept()

    def disconnect(self, close_code):
        pass

    def receive(self, text_data):
        text_data_json = json.loads(text_data)
        message = text_data_json['message']

        self.send(text_data=json.dumps({
            'message': message,
        }))

На угловой стороне я пытаюсь подключитьсяв веб-сокет, используя следующую функцию.

initwebSocket() {
    let chatSocket = new WebSocket(
      'ws://' + window.location.host +
      '/ws/document/convertprogress/');


    chatSocket.onmessage = function(e) {
      console.log("event is");
      console.log(e);
    };

    chatSocket.onclose = function(e) {
      console.error('Chat socket closed unexpectedly');
    };
  }

эта функция вызывается, когда другая функция возвращает свой ответ, но я получаю следующую ошибку.

Соединение WebSocket с 'ws:// paksign: 4200 / ws / document / convertprogress / 'fail: Соединение закрыто до получения ответа на рукопожатие.

Неправильно закрыто сокет чата

Я пробовал решения, которые я нашел после поиска в Googleэта проблема, но не повезло.любая помощь приветствуется.спасибо.

...