0.3.30
support chat v3
This commit is contained in:
@@ -72,14 +72,39 @@ class ChatConsumer(WebsocketConsumer):
|
||||
# super().__init__(args, kwargs)
|
||||
# self.room_name = None
|
||||
|
||||
def disconnect(self, close_code):
|
||||
print("Closed websocket with code: ", close_code)
|
||||
|
||||
for gr in self.groups:
|
||||
async_to_sync(self.channel_layer.group_discard)(
|
||||
gr,
|
||||
self.channel_name
|
||||
)
|
||||
self.close()
|
||||
|
||||
def connect(self):
|
||||
print('ws connect')
|
||||
|
||||
async_to_sync(self.channel_layer.group_add)(
|
||||
f'user_{self.scope["user"].id}',
|
||||
self.channel_name
|
||||
)
|
||||
print(f'created group user_{self.scope["user"].id}')
|
||||
user_group = f'user_{self.scope["user"].id}'
|
||||
|
||||
add_to_group = False
|
||||
if not self.groups or not user_group in self.groups or not self.channel_name in self.groups[user_group]:
|
||||
add_to_group = True
|
||||
|
||||
if add_to_group:
|
||||
if not self.groups:
|
||||
self.groups = {user_group: [self.channel_name]}
|
||||
elif not user_group in self.groups:
|
||||
self.groups[user_group].append(self.channel_name)
|
||||
else:
|
||||
self.groups.update({user_group: [self.channel_name]})
|
||||
|
||||
async_to_sync(self.channel_layer.group_add)(
|
||||
user_group,
|
||||
self.channel_name
|
||||
)
|
||||
|
||||
print(f'created group user_{self.scope["user"].id}')
|
||||
|
||||
if self.scope['user'].is_staff:
|
||||
async_to_sync(self.channel_layer.group_add)(
|
||||
@@ -160,40 +185,40 @@ class ChatConsumer(WebsocketConsumer):
|
||||
resDict
|
||||
)
|
||||
|
||||
group_name = f'user_{receiver}'
|
||||
# if group_name in self.channel_layer.groups.keys():
|
||||
data.update({
|
||||
'cur_user': receiver,
|
||||
'required_beep': True,
|
||||
})
|
||||
Dict = get_update_chat_Dict(data)
|
||||
|
||||
if 'support_chat_html' in Dict:
|
||||
msg_type = 'update_support_chat'
|
||||
else:
|
||||
msg_type = 'update_chat'
|
||||
|
||||
resDict = {
|
||||
'type': msg_type,
|
||||
'sender': receiver,
|
||||
'receiver': sender,
|
||||
'group_name': group_name,
|
||||
}
|
||||
|
||||
if ticket:
|
||||
tickets_wo_manager_html = get_tickets_wo_manager_html(ticket, receiver_obj, data)
|
||||
if tickets_wo_manager_html:
|
||||
resDict.update({'tickets_wo_manager_html': tickets_wo_manager_html})
|
||||
|
||||
tickets_w_manager_html = get_tickets_w_manager_html(ticket, receiver_obj, data)
|
||||
if tickets_w_manager_html:
|
||||
resDict.update({'tickets_w_manager_html': tickets_w_manager_html})
|
||||
|
||||
resDict.update(Dict)
|
||||
async_to_sync(self.channel_layer.group_send)(
|
||||
group_name,
|
||||
resDict
|
||||
)
|
||||
# group_name = f'user_{receiver}'
|
||||
# # if group_name in self.channel_layer.groups.keys():
|
||||
# data.update({
|
||||
# 'cur_user': receiver,
|
||||
# 'required_beep': True,
|
||||
# })
|
||||
# Dict = get_update_chat_Dict(data)
|
||||
#
|
||||
# if 'support_chat_html' in Dict:
|
||||
# msg_type = 'update_support_chat'
|
||||
# else:
|
||||
# msg_type = 'update_chat'
|
||||
#
|
||||
# resDict = {
|
||||
# 'type': msg_type,
|
||||
# 'sender': receiver,
|
||||
# 'receiver': sender,
|
||||
# 'group_name': group_name,
|
||||
# }
|
||||
#
|
||||
# if ticket:
|
||||
# tickets_wo_manager_html = get_tickets_wo_manager_html(ticket, receiver_obj, data)
|
||||
# if tickets_wo_manager_html:
|
||||
# resDict.update({'tickets_wo_manager_html': tickets_wo_manager_html})
|
||||
#
|
||||
# tickets_w_manager_html = get_tickets_w_manager_html(ticket, receiver_obj, data)
|
||||
# if tickets_w_manager_html:
|
||||
# resDict.update({'tickets_w_manager_html': tickets_w_manager_html})
|
||||
#
|
||||
# resDict.update(Dict)
|
||||
# async_to_sync(self.channel_layer.group_send)(
|
||||
# group_name,
|
||||
# resDict
|
||||
# )
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import os
|
||||
|
||||
from django.core.asgi import get_asgi_application
|
||||
from channels.routing import ProtocolTypeRouter, URLRouter
|
||||
# from channels.auth import AuthMiddlewareStack
|
||||
from channels.auth import AuthMiddlewareStack
|
||||
from ChatServiceApp.websocket_urls import websocket_urlpatterns
|
||||
from channels.security.websocket import AllowedHostsOriginValidator
|
||||
from channels.sessions import SessionMiddlewareStack
|
||||
|
||||
Reference in New Issue
Block a user