Skip to content

Commit

Permalink
Formatting and added user scoping more correctly in that we only fetc…
Browse files Browse the repository at this point in the history
…h self.scope['user'] at connect
  • Loading branch information
mike-zaharchenko17 committed Nov 24, 2023
1 parent d6776ee commit fd9013f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
26 changes: 13 additions & 13 deletions chat/consumers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@

from asgiref.sync import async_to_sync
from channels.generic.websocket import WebsocketConsumer
from django.contrib.auth.decorators import login_required


class ChatConsumer(WebsocketConsumer):
def __init__(self, *args, **kwargs):
super().__init__(args, kwargs)
self.room_group_name = None
self.room_name = None
self.user = None

def connect(self):
self.room_name = self.scope["url_route"]["kwargs"]["room_name"]
self.room_group_name = f"chat_{self.room_name}"
self.user = self.scope["user"]

# Join room group
async_to_sync(self.channel_layer.group_add)(
Expand All @@ -25,29 +26,28 @@ def connect(self):
def receive(self, text_data):
text_data_json = json.loads(text_data)
message = text_data_json["message"]
username = self.scope["user"].username
username = self.user.username

# Send message to room group
async_to_sync(self.channel_layer.group_send)(
self.room_group_name,
{
"type": "chat.message",
"message": message,
"username": username
}
{"type": "chat.message", "message": message, "username": username},
)

# Receive message from room group
def chat_message(self, event):
message = event["message"]
username = event["username"]
# Send message to WebSocket
self.send(text_data=json.dumps({
"type": 'chat',
"message": message,
"username": username,
}))

self.send(
text_data=json.dumps(
{
"type": "chat",
"message": message,
"username": username,
}
)
)

def disconnect(self, close_code):
# Leave room group
Expand Down
1 change: 1 addition & 0 deletions chat/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.shortcuts import render
from django.contrib.auth.decorators import login_required


@login_required
def index(request):
return render(request, "chat/index.html")
Expand Down

0 comments on commit fd9013f

Please sign in to comment.