o
    m6.i                     @   sR   d dl Z d dlZd dlZdZdZG dd dZdd Zedkr'e e  dS dS )	    Nz2wss://mockapi.kiwoom.com:10000/api/dostk/websocketzVrjRIzKNeEEj0ElbR1aGZd1-hpaFDIlguSZGEAmYV-EMSOGnlXOKpazHfLRqMvmwep0jM7m8QJHvmVXjOJdoF6wc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )WebSocketClientc                 C   s   || _ d | _d| _d| _d S )NFT)uri	websocket	connectedkeep_running)selfr    r   strategy_1.py__init__   s   
zWebSocketClient.__init__c              
      s   z&t | jI d H | _d| _td dtd}td | j|dI d H  W d S  tyD } ztd|  d| _W Y d }~d S d }~ww )	NTz&@@@ try Connect Websocket to Server!!!LOGIN)trnmtockenzB@@@ Transfer login packet information for Realtime market price!!!messagez##Connection Error:F)	
websocketsconnectr   r   r   printACCESS_TOKENsend_message	Exception)r   paramer   r   r	   r      s   zWebSocketClient.connectedc                    sT   | j s|   I d H  | j rt|tst|}| j|I d H  td|  d S )NzMessage sent: )r   
isinstancestrjsondumpsr   sendr   )r   r   r   r   r	   r   '   s   

zWebSocketClient.send_messagec                    s  | j rz^t| j I d H }|ddkrD|ddkr.td|d |  I d H  n%td td dd	i}| j|d
I d H  n|ddkrS| |I d H  |ddkratd|  W n t	j
y{   td d| _| j I d H  Y nw | j sd S d S )Nr   r   return_coder   u#   로그인 실패하였습니다. : 
return_msgu    로그인 성공하였습니다.u4   조건검색 목록조회 패킷을 전송합니다.CNSRLSTr   PINGu'   실시간 시세 서버 응답 수신: zConnection closed by the serverF)r   r   loadsr   recvgetr   
disconnectr   r   ConnectionClosedr   close)r   responser   r   r   r	   receive_messages3   s0   z WebSocketClient.receive_messagesc                    s"   |   I d H  |  I d H  d S )N)r   r(   r   r   r   r	   runT   s   zWebSocketClient.runc                    s>   d| _ | jr| jr| j I d H  d| _td d S d S d S )NFz"Disconnected from WebSocket server)r   r   r   r&   r   r)   r   r   r	   r$   Y   s   zWebSocketClient.disconnectN)	__name__
__module____qualname__r
   r   r   r(   r*   r$   r   r   r   r	   r      s    !r   c               	      sT   t t} t|  }tdI d H  | dddddddI d H  |I d H  d S )	N   CNSRREQ40KN )r   seqsearch_typestex_tpcont_ynnext_key)r   
SOCKET_URLasynciocreate_taskr*   sleepr   )websocket_clientreceive_taskr   r   r	   main`   s   
r@   __main__)	r;   r   r   r:   r   r   r@   r+   r*   r   r   r   r	   <module>   s    U