Trading/암호화폐2020. 12. 19. 20:35

 

오류 요점.

파이썬에서  바이빗 과 통신하는 WebSocket 프로그램 실행 중에 1주일에 1회 혹은 재수없는 경우엔 수시간 만에 파이썬 프로그램이 종료되는 경우 있다. 아래 화면은 종료된 시점에 보이는 모습. 

 

오류 문구: websockets.exceptions.ConnectionClosedError: code = 1006 (connection closed abnormally [internal]), no reason

 

 

해결책1. 접속 종료시 재접속 구문 파이썬 코드 추가.

 

상기 오류 관련 구글 검색해보면 바이빗 뿐만 아니라 바이낸스 거래소연결 웹소켓에서도 자주 발생하는 오류이다. 해결책으로 제시되는것은 모두 접속종료된 경우 파이썬코드에서 재접속 실행 코드 추가하는게 해결책의 전부로 보임. 

 

 

 

1006 Connection closed abnormally error with python 3.7 websockets

I'm having the same problem as this github issue with python websockets: https://github.com/aaugustin/websockets/issues/367 The proposed solution isn't working for me though. The error I'm getting...

stackoverflow.com

 

해결책2. DLL 과 별도의 감시 프로그램 이용하여 파이썬 프로그램 재실행.

 

상기 해결책은 파이썬 코드 에서 재접속 실행시키는 구문 추가하는 방식인데, 파이선 프로그램을 아예 재실행시키는 방식. 

 

1. 파이썬 코드를 실행바이너리 형식인 exe 파일로 만들고 실행시 exe 파일 실행시키도록 구성.

방법상세보기. 

 

Python. 파이썬 실행파일 만들기. Pyinstaller 이용

개요 - Pyinstaller 이용하여 파이썬으로 작성된 코드를 개발환경이 아닌 일반 PC 에서 실행시키기 위한 실행파일 만드는 방법. 사전준비 . Pyinstaller 설치. - Pyinstaller 설치 구문 ; pip install pyinstaller..

igotit.tistory.com

 

2. VC++ 로 윈도우 있는 DLL 제작하여 파이썬 실행시 DLL 도 같이 실행시키기.

DLL 만들기 상세보기.

 

VC++ MFC Regular DLL 프로젝트 만들기. 예:CyFinAPI.dll

개요 VC++ 에서 MFC Regular DLL 만드는 법. 사용된 IDE : Visual Studio 2015 DLL 프로젝트 명칭 : CyFinAPI - Solution 명칭도 CyFinAPI 로 함. 과정요약. 1. Visual Studio 의 "새 프로젝트" (메뉴 :파일->새로..

igotit.tistory.com

 

파이썬에서 DLL 활용하기.

 

Python. ctypes. 파이썬에서 DLL 활용

ctypes - 파이썬에서 DLL 로딩하여 dll 에서 제공하는 함수 호출 가능하게 하는 모듈. - ctype 에서 dll 로딩위하여 cdll, windll, oledll 3종의 object 제공되며, dll의 함수호출규약 에 따라 아래와 같다. -- cd..

igotit.tistory.com

 

3. 파이썬 프로그램 비정상 종료시 상기1의 DLL 도 실행중지되어 DLL 윈도우도 닫힘. 

 

4. 외부 별도 DLL 윈도우 감시 프로그램에서 DLL 윈도우가 사라진 경우 파이썬 프로그램 재구동시킴.

 

윈도우창 찾기 방법상세보기. FindWindow 이용.

 

다른 프로그램과 메시지 송수신 - FindWindow이용 대상윈도우핸들로 직접 전송.

개요 서로 다른 프로그램간의 메시지 송수신을 위하여 메시지 전송대상 윈도우 핸들을 함수 FindWindow 이용하여 확보하고 메시지 전송하는 방법 정리. 간단히 2단계로 이뤄진다. 1. FindWindow 로

igotit.tistory.com

 

외부프로그램 실행시키는 방법상세보기.

 

외부프로그램 실행시키기. CreateProcess, ShellExecute, WinExec

개요 외부프로그램 실행시키는 함수 3개(CreateProcess, ShellExecute,WinExec) 비교 및 CreateProcess 사용법 상세. 비교. WinExec - window3.1 때부터 제공된 함수이며 하위 호환성 때문에 아직도 남아있는것..

igotit.tistory.com

 

 

 

 

 

 

연관 

 

 

 

bybit. API. WebSocket 서버 3개 동시 접속 파이썬 코드.

개요 - bybit 의 USD 종목용 websocket 서버 1개와 , USDT 종목용 websocket 서버 2개에 동시 접속 파이썬 코딩.  작동방식. 1. 파이썬 코드 실행되면 파일 apikey_url_bybit.txt 를 읽어서 접속서버주소와 api k..

igotit.tistory.com

 

 

 

 


첫 등록 : 2020.12.19

최종 수정 : 

단축 주소 : https://igotit.tistory.com/2733

 


 

Posted by 리치굿맨

댓글을 달아 주세요

  1. 상하의신사

    덕분에 잘 보고 코딩하고있습니다.
    하지만 1006 에러는 해결을 못하고 있습니다.
    혹시 해결하셨다면 어떤 방법을 사용하셨는지 알 수 있을까요?

    2021.03.24 10:28 [ ADDR : EDIT/ DEL : REPLY ]
    • 아직 저도 이 문제를 깔끔하게 해결하지 못한 상태입니다. ㅠㅠ 에러 1006 발생시 재접속하도록 처리해야하는건 확실한데 저의 경우 파이썬에서 처리하는 방식 1보다는 VC++ DLL 이용하는 방식2를 더 선호 합니다(그냥 제가 익숙한 툴이라서...)

      한편, 저의 현재 업무 환경이 자는 시간 제외하고는 상시 모니터링 가능한 상황이라 연결해제된 경우 수동으로 재접속 처리해주고 있는 중 입니다.

      2021.03.24 23:45 신고 [ ADDR : EDIT/ DEL ]
  2. 상하의신사

    답변감사드립니다.
    1006 에러가 처음에는 자주 안나오다가 지금은 자주나와서 해결방법을 찾고 있던중에, 혹시 해결하셨으면 조언을 얻고 싶었습니다.
    감사합니다.

    2021.03.25 09:47 [ ADDR : EDIT/ DEL : REPLY ]