from django.db import models from channels.generic.websocket import WebsocketConsumer import json from transcendence.abstract.AbstractRoom import AbstractRoom from transcendence.abstract.AbstractRoomManager import AbstractRoomManager from transcendence.abstract.AbstractRoomMember import AbstractRoomMember # Create your models here. class Waiter(AbstractRoomMember): pass class WaitingRoom(AbstractRoom): def __init__(self, room_manager,mode): super().__init__(room_manager) self.mode = mode def append(self, waiter: Waiter): tmp: Waiter = self.get_member_by_user_id(waiter.user_id) if (tmp is not None): tmp.send("Connection close: Another connection open with the same user id.") self.remove(tmp) waiter.accept() self._member_list.append(waiter) class WaitingRoomManager(AbstractRoomManager): def get(self, mode: int): for waiting_room in self._room_list: waiting_room: WaitingRoom if (waiting_room.mode == mode): return waiting_room tmp: WaitingRoom = WaitingRoom(self, mode) super().append(tmp) return tmp normal: WaitingRoomManager = WaitingRoomManager()