core: use abstract room, member, roommanager

This commit is contained in:
2023-12-23 18:30:45 +01:00
parent 4e21347199
commit 699abc9d1b
5 changed files with 36 additions and 97 deletions

View File

@ -1,3 +1,5 @@
from channels.generic.websocket import WebsocketConsumer
from .AbstractRoomMember import AbstractRoomMember
class AbstractRoom:
@ -30,24 +32,20 @@ class AbstractRoom:
def append(self, member: AbstractRoomMember):
tmp: AbstractRoomMember = self.get_member_by_user_id(member.user_id)
if (tmp is not None):
tmp.send("Connection close: Another connection open with the same user id.")
self.remove(tmp)
member.accept()
self._member_list.append(waiter)
member.accept()
def remove(self, member: AbstractRoomMember):
self._member_list.remove(member)
waiter.disconnect()
member.disconnect()
def empty(self):
for _ in self._waiter_list:
for _ in self._member_list:
return False
return True
def get_users_id(self):
return [waiter.user_id for waiter in self._waiter_list]
return [member.user_id for member in self._member_list]
def __len__(self):
return len(self._waiter_list)
return len(self._member_list)