Django — ValueError: сокет не был принят, поэтому не может отправить через него

#python #django #django-channels

#python #django #django-channels

Вопрос:

Я начинаю работать с каналами Django и создал очень простого потребителя, но всякий раз, когда я пытаюсь подключиться к этому потребителю, я продолжаю получать следующую ошибку:

 Exception inside application: Socket has not been accepted, so cannot send over it
  

Вот потребитель:

 class TestConsumer(WebsocketConsumer):
    def websocket_connect(self, event):
        self.send({
            'type': 'websocket.accept'
        })
       
        print('CONNECTED')

    def websocket_receive(self, event):
        data = event['text']
        print(data)

    def websocket_disconnect(self, event):
        print('DISCONNECTED!')
  

Что я здесь делаю не так? Приветствуются любые советы.

Ответ №1:

Вместо этого:

 self.send({
    'type': 'websocket.accept'
})
  

Попробуйте это:

 self.accept({
    'type': 'websocket.accept'
})
  

Комментарии:

1. Правильно! Большое вам спасибо!