
    ϼi                     8    d dl Z d dlZd dlZd dlZ G d d      Zy)    Nc                   2    e Zd ZddZd Zd Zd Zd Zd Zy)	DashboardWSc                 >    || _         || _        t               | _        y N)hostportsetclients)selfr   r   s      0/var/www/app/trading-bot/api/websocket_server.py__init__zDashboardWS.__init__   s    		u    c                    K   | j                   j                  |       t        j                  d|j                          y w)NzDashboard client connected: )r
   addlogginginforemote_addressr   	websockets     r   registerzDashboardWS.register   s3     #3I4L4L3MNOs   ?Ac                 l   K   | j                   j                  |       t        j                  d       y w)NzDashboard client disconnected)r
   remover   r   r   s     r   
unregisterzDashboardWS.unregister   s%     I&46s   24c                    K   | j                   sy t        j                  |      }t        j                  | j                   D cg c]  }|j                  |       c}  d {    y c c}w 7 
wr   )r
   jsondumpsasynciogathersend)r   datamessageclients       r   	broadcastzDashboardWS.broadcast   sN     ||**T"nn$,,Ov{{73OPPPOPs   A A.A'A.!A,"A.c                   K   | j                  |       d {    	 |2 3 d {   }
7 7 6 n## t        j                  j                  $ r Y nw xY w| j	                  |       d {  7   y # | j	                  |       d {  7   w xY wwr   )r   
websockets
exceptionsConnectionClosedr   )r   r   r!   s      r   
ws_handlerzDashboardWS.ws_handler   s     mmI&&&	-!*  g	 	' $$55 		 //),,,$//),,,su   B)B/ -+-/ B-/ A- AA- AA- B&A)'B-B	BB		Bc                 t  K   t        j                  | j                  | j                  | j                        4 d {    t        j                  d| j                   d| j                          t        j                          d {    d d d       d {    y 7 `7 7 	# 1 d {  7  sw Y   y xY ww)Nz!WebSocket server started on ws://:)	r%   server(   r   r   r   r   r   Future)r   s    r   startzDashboardWS.start%   s     ##DOOTYY		J 	# 	#LL<TYYKqTU.."""	# 	# 	#"	# 	# 	# 	#sX   :B8BB8 AB#BB#B8B!B8B#!B8#B5)B,*B51B8N)z0.0.0.0iA  )	__name__
__module____qualname__r   r   r   r#   r(   r-    r   r   r   r      s"    
P7Q	-#r   r   )r   r   r%   r   r   r1   r   r   <module>r2      s       "# "#r   