
    Xj7                     b    d dl mZ d dlmZ  ee          Z G d d          Z e            ZdS )    )	WebSocket)
get_loggerc                   D    e Zd Zd ZdedefdZdedefdZdedefdZ	dS )	WebSocketManagerc                     i | _         d S N)connections)selfs    L/lsinfo/ai/hellotax_ai/training_center/backend/app/core/websocket_manager.py__init__zWebSocketManager.__init__
   s    79    task_id	websocketc                    K   |                                  d {V  || j        vr
g | j        |<   | j        |                             |           d S r   )acceptr	   appendr
   r   r   s      r   connectzWebSocketManager.connect   sg               $***(*DW%!((33333r   c                    K   || j         v r7| j         |                             |           | j         |         s| j         |= d S d S d S r   )r	   remover   s      r   
disconnectzWebSocketManager.disconnect   sc      d&&&W%,,Y777#G, .$W--- '&. .r   messagec                    K   || j         v rX| j         |         D ]L}	 |                    |           d {V  # t          $ r t                              d|           Y Gw xY wd S d S )NzWebSocket send failed)r   )r	   	send_json	Exceptionloggerwarning)r
   r   r   
connections       r   	broadcastzWebSocketManager.broadcast   s      d&&&".w7 M M
M$..w7777777777  M M MNN#:GNLLLLLM	 '&M Ms   8&A! A!N)
__name__
__module____qualname__r   strr   r   r   dictr    r   r   r   r      s        : : :4S 4Y 4 4 4 4. .	 . . . .Ms MT M M M M M Mr   r   N)fastapir   common_loggingr   r    r   r   managerr%   r   r   <module>r)      s|          % % % % % %	H		M M M M M M M M0 


r   