Django channels websocket не получает отправленные данные

#javascript #django #websocket #django-channels

#javascript #django #websocket #django-каналы

Вопрос:

В настоящее время я изучаю, как использовать Django channels для подключений к websocket, и до сих пор я получил websocket для фактического подключения, но когда я отправляю ему данные, он их не получает.

Это мой consumers.py

 class WSConsumer(AsyncConsumer):
    async def websocket_connect(self, event):
        print('connected', event)
        await self.send({
            'type': 'websocket.accept'
        })
        await self.send({
            'type': 'websocket.send',
            'message': 'TEST'
        })
        print('sent')

    async def websocket_disconnect(self, event):
        print('disconnected', event)

    async def websocket_receive(self, event):
        print('received', event))
 

Это мой javascript на интерфейсе

     const roomName = JSON.parse(document.getElementById('room-name').textContent);

    const WSocket = new WebSocket(
        'ws://'
          window.location.host
          '/ws/room/'
          roomName
          '/'
    );

    WSocket.onopen = function(e) {
        console.log('websocket has connected');
    };

    WSocket.onmessage = function(e) {
        console.log(e);
    };


    WSocket.onclose = function(e) {
        console.error('websocket closed unexpectedly');
    };
 

Ответ №1:

Вупс только что понял, что я дурак на месте мужчины.

В приведенном ниже коде я изначально написал

         await self.send({
            'type': 'websocket.send',
            'message': 'TEST'
        })
 

когда это должно быть

         await self.send({
            'type': 'websocket.send',
            'text': 'TEST'
        })
 

Он должен иметь тип «текст» вместо «сообщение»