Django通道Websocket组名称

Django通道Websocket组名称,django,websocket,django-channels,Django,Websocket,Django Channels,对不起,英语不好:( 我想为每个用户创建通知系统。用户有自己的组/房间,每个通知都会转到特定用户的通知房间。每次用户连接到websocket时,用户都会创建相同的用户id。self.scope[“user”]。因此,仅创建了用户\u通知\u 1组名。如何根据用户创建组名 我用 代码: UPD当我注意到我禁用了REST\u SESSION\u LOGIN时,我的问题就解决了。我使用dj REST auth是否要为所有现有用户创建组?是的。它只是用于聊天室中的实时通知。请您详细解释并给出一个示例。如

对不起,英语不好:( 我想为每个用户创建通知系统。用户有自己的组/房间,每个通知都会转到特定用户的通知房间。每次用户连接到websocket时,用户都会创建相同的用户id。
self.scope[“user”]
。因此,仅创建了
用户\u通知\u 1
组名。如何根据用户创建组名

我用

代码:


UPD当我注意到我禁用了
REST\u SESSION\u LOGIN
时,我的问题就解决了。我使用dj REST auth

是否要为所有现有用户创建组?是的。它只是用于聊天室中的实时通知。请您详细解释并给出一个示例。如果用户已登录,则您可以使用用户名,确切时间以及为什么要使用其他用户名创建聊天室?是的。当用户登录后,我会连接到websocket,在那里我创建了一个具有模式user\u notification\u的组。这意味着用户将获得所有对所创建组的通知。一个用户一个组。我想使用其他用户名创建聊天室,因为我不想告诉用户与他/她相关的新消息或其他事情
application = ProtocolTypeRouter(
    {
        "websocket": AuthMiddlewareStack(URLRouter(websocket_urlpatterns)),
    }
)
import json
from channels.generic.websocket import WebsocketConsumer


class NotificationConsumer(WebsocketConsumer):
    async def connect(self):
        self.user = self.scope["user"]
        if self.user.is_authenticated:
            self.room_group_name = f"user_notification_{self.user.id}"
        else:
            self.room_group_name = "anonymous"
        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=None, bytes_data=None):
        self.user = self.scope["user"]
        if self.user.is_authenticated:
            await self.send(
                text_data=json.dumps({"message": "pong"})
            )
        else:
            await self.send(
                text_data=json.dumps({"type": "error", "code": "UserNotAuthenticated"})
            )

    async def new_chat_message(self, event):
        await self.send(text_data=json.dumps(event.get("data")))

    async def connect_successful(self, event):
        await self.send(text_data=json.dumps(event.get("data")))