我的WebSocket使用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
)
为什么我的WebSocket无法正常断开连接? (我仍然收到消息)
答案 0 :(得分:1)
def disconnect(self, close_code):
# Leave room group
async_to_sync(self.channel_layer.group_discard)(
self.room_group_name,
self.channel_name
)
尝试一下
答案 1 :(得分:0)
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':
return await self.close()
您也可以尝试一下。如果需要,您还可以添加一个关闭代码。