Django 通道,断开连接

Dal*_*tor 5 django django-channels

我的 WebSockets 与 django 通道一起使用。我想做的最后一件事是在用户单击按钮时关闭套接字,因此在前端,我只需向服务器发送一条断开连接消息:

socket.send({action: 'disconnect'});

然后,在我的消费者中,我只需断开连接:

async def receive(self, text_data):
    text_data_json = json.loads(text_data)
    if 'action' in text_data_json and text_data_json['action'] == 'disconnect':
        await self.disconnect(0)


async def disconnect(self, close_code):
    await self.channel_layer.group_discard(
        self.room_group_name,
        self.channel_name
    )
Run Code Online (Sandbox Code Playgroud)

为什么我的 WebSocket 无法正确断开连接?(我仍然收到消息)

小智 2

def disconnect(self, close_code):
    # Leave room group
    async_to_sync(self.channel_layer.group_discard)(
        self.room_group_name,
        self.channel_name
    )
Run Code Online (Sandbox Code Playgroud)

尝试这个