[Answered ]-Django Channels consumers.py scope['user'] returns anonymousUser

1๐Ÿ‘

โœ…

Iโ€™ve made some changes to the code that I took from the documentation and the result is like this

class ChatConsumer(AsyncWebsocketConsumer):
async def connect(self):
    me = self.scope['user']
    other_username = self.scope['url_route']['kwargs']['username']
    other_user =await sync_to_async(User.objects.get)(username=other_username)
    thread_obj =await sync_to_async(Thread.objects.get_or_create_personal_thread)(me,other_user)
    self.room_name = f'{thread_obj.id}_service'
    self.room_group_name = self.room_name
    await self.channel_layer.group_add(
        self.room_group_name,
        self.channel_name
    )
    await self.accept()
    
async def disconnect(self, close_code):
    await self.channel_layer.group_discard(
        self.room_group_name,
        self.channel_name
    )

async def receive(self, text_data):
    
    text_data_json = json.loads(text_data)
    message = text_data_json['message']
    await self.channel_layer.group_send(
        self.room_group_name,
        {
            'type': 'chat_message',
            'message': message
        }
    )

async def chat_message(self, event):
    message = event['message']
    await self.send(text_data=json.dumps({
        'message': message
    }))
๐Ÿ‘คM.Mawlawi

Leave a comment