develop custom_top_html:no
default debug random = 0 / type = READ / detected = READ
# 업비트 웹소켓 호가 조회
def on_message(ws, message):
    global testText
    get_message = json.loads(message.decode('utf-8'))       # json 형태로 변경하는 방법인건 같음
    print('message :    ' + str(get_message))

def on_error(ws, error):
    print(error)

def on_close(ws):
    print("### closed ###")

def on_open(ws):
    sendData = '[{"ticket":"INSERTUUID"},{"format":"SIMPLE"},{"type":"orderbook","codes":["KRW-BTC"],"isOnlyRealtime":"TRUE"},{"format":"SIMPLE"}]'
    ws.send(sendData)

def main():
    print("메인함수 진입")

websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://api.upbit.com/websocket/v1", on_message = on_message, on_error = on_error, on_close = on_close)
ws.on_open = on_open
ws.run_forever()

main()          # 실행이 안됨

 

 

메인함수를 진입을 못하네요.

 

뭐가 문제일려나요?

 

어떻게 처리를 해야될지 감이 잘 안오네요.

웹소켓에서 송수신 프로세르와 호출되는 함수를 제가 이해를 못해서 그런거 같기도 하구여 

 

 

 

 

 

 

 

 

 

 

468
댓글 14
  • 터미널에서 'pip install websocket-client', 라이브러리 설치 하시고..
    https://github.com/websocket-client/websocket-client

    코드에서 아래와 같이 모듈 불러오시면 일단 실행은 됩니다..
    import websocket
    import json
    ...

    아 'global testText'는 당장 안쓰시면 지우시는게..ㅎㅎ
  • ?
    @poleax19
    아니 데이터 웹소켓으로 가져오오는건 되는데 메인함수가 실행이 안되서 그런겁니다..

    뭐가 문제일까여? 설치는 다 했고 문제없는건 확인했어요
  • @슬픈낙여
    검색해 보니 블로그 글 참조하신 것 같아서 혹시 실행을 못하시나 했네요..ㅎㅎ
    메인함수 호출 전에 무한으로 돌고 있으니 메인까지 못오는 겁니다.
    저 짧은 코드 참고하는 것 보단.. https://github.com/inasie/upbitpy <== 요기 참고하시는 게 나아보입니다.
    샘플도 있고 좋네요..ㅎㅎ
  • ?
    run_forever가 내부에서 리턴하지않고 루프를 돌아서 그렇습니다.
  • ?
    @Tobit
    웹소켓을 연결을 해둔 상태로는 다른 함수를 돌릴수 없는건가요 그럼?

    웹소켓 연결했다 끊었다 다시 연결했다 이렇게 히면 웹소켓 호출 제한걸리는 문제가 있어서.

    루프를 여러개 쓰고 싶거든요.
  • ?
    @슬픈낙여
    쓰레드로 돌리세요
  • ?
    @Tobit
    # 업비트 웹소켓 호가 조회
    def on_message(ws, message):
    global testText
    get_message = json.loads(message.decode('utf-8')) # json 형태로 변경하는 방법인건 같음
    print('message : ' + str(get_message))

    def on_error(ws, error):
    print(error)

    def on_close(ws):
    print("### closed ###")

    def on_open(ws):
    sendData = '[{"ticket":"INSERTUUID"},{"format":"SIMPLE"},{"type":"orderbook","codes":["KRW-BTC"],"isOnlyRealtime":"TRUE"},{"format":"SIMPLE"}]'
    ws.send(sendData)

    def maintest():
    while(1):
    print("메인함수 진입")

    def run_websocket():
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("wss://api.upbit.com/websocket/v1", on_message = on_message, on_error = on_error, on_close = on_close)
    ws.on_open = on_open
    ws.run_forever()

    th1 = Thread(target=run_websocket(), args=())
    th2 = Thread(target=main(), args=())

    th1.join()
    th2.join()
  • ?
    @Tobit
    쓰레드로 시도해봣는데.. 동일하게 그냥 위에 웹소켓만 동작해서 쓰레드는 방법이 아닌가 생각하고 있었습니다.
  • ?
    @슬픈낙여
    뭔가.............. 쉽지 않네여 ㅋㅋㅋ그냥 API써서 했는데.. 속도 좀 빠르게 개선 하고 싶어서 하는중인데..
    웹소켓 프로세스를 잘모르니..ㅋㅋㅋ 기초공부를 좀해야되는데ㅋ
  • ?
    @슬픈낙여
    th1 = Thread(target=run_websocket, args=())
    th1.start()

    입니다. 사용방법이 잘못되었습니다.
  • ?
    @Tobit
    # 업비트 웹소켓 호가 조회
    def on_message(ws, message):
    global testText
    get_message = json.loads(message.decode('utf-8')) # json 형태로 변경하는 방법인건 같음
    print('message : ' + str(get_message))

    def on_error(ws, error):
    print(error)

    def on_close(ws):
    print("### closed ###")

    def on_open(ws):
    sendData = '[{"ticket":"INSERTUUID"},{"format":"SIMPLE"},{"type":"orderbook","codes":["KRW-BTC"],"isOnlyRealtime":"TRUE"},{"format":"SIMPLE"}]'
    ws.send(sendData)

    def maintest():
    while(1):
    print("메인함수 진입")

    def run_websocket():
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("wss://api.upbit.com/websocket/v1", on_message = on_message, on_error = on_error, on_close = on_close)
    ws.on_open = on_open
    ws.run_forever()

    th1 = Thread(target=run_websocket(), args=())
    th1.start()
    th2 = Thread(target=maintest(), args=())
    th2.start()
    th1.join()
    th2.join()



    동일하게 maintest함수는 실행안하고. 그냥 onmessage 함수만 실행되면서 데이터만 수신하고 있습니다
  • @슬픈낙여
    슬픈낙여님 축하합니다. 363 보너스 캐시에 당첨되셨습니다.!!
  • ?
    @슬픈낙여

    th1 = Thread(target=run_websocket, args=())

     

    target 넘겨줄때는 함수 이름만 넘겨줍니다.

  • ?
    @Tobit
    감사합니다. 쪽지확인 부탁드립니다.

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
공지 키보드 추첨 이벤트 (1명) (~5/28) 16 updatefile 20 456
ESN경매
2020.05.22
공지 비트코인 피자데이 기념 피자 추첨 이벤트 결과 발표 20 10 436
ESN경매
2020.05.21
공지 비트코인 피자데이 기념 피자 추첨 이벤트(10명) (~5/21) 132 file 52 1391
ESN경매
2020.05.15
공지 비트코인 가격을 맞춰라!! 이벤트 (1명) (~5/19 신청연장, 가격기준일 5/26) 7 update 25 904
ESN경매
2020.05.08
공지 ESN 2기 운영진 출범 및 4월 리포트 9 file 20 837
ESN운영
2020.04.29
공지 게시판 캐시 적립 정책 변경 안내 (2019/12/20 시행) 36 update 12 1694
관리자
2019.12.20
공지 로그인이 안되시는 분은 문의해주시기 바랍니다. 12 6 4185
땡글개발자
2019.08.21
1732 질문 직접 개발한 코인의 GPU 채굴은 어떻게 하나요? 라이트코인 포크로 코인을 만들었구요, 데몬에 setgenreate true n 명령으로 채굴 할 수도 있지만.. 제가 윈하는건 gpu 채굴입니다.   gpu 채굴 프로그램 몇개 받아봤는데, 다들 기존 유명 코인들만 지원하는거 같더... new 1 133
비폭력무저항
14:27:52
1731 개발 안녕하세요. 봇 개발 문의 드리려고 합니다.      여기 개시판에 이런 문의 드려도 되는지 모르겠습니다.      트레이딩 봇 개발 가능하신 분은 쪽지 부탁드립니다.      상세한건 쪽지나 텔레그렘으로 상담 드리겠습니다.                 0 445
쏴니
2020.05.19
1730 개발 봇개발       트레이딩봇, 거래소등 요구하시는대로 완벽개발해드립니다. 쪽지주세요                 13 0 1501
송하늬다
2020.04.22
1729 개발 빗썸 프로(글로벌) API 에서 fee 를 구하는 방법 문의      안녕하세요. 선배님들  코로나로 부터  항상 건강지키시길 기원합니다.    다름이 아니라..  빗썸 프로 api 로 개발을 진행하고 있는데요.    fee 를 구하는 법에 대해 문의 드립니다.    2가지 방법이 있는데  ... 0 1057
부자아들
2020.04.18
1728 개발 트레이딩봇 한달 수익률 공개합니다.   어떤 봇인지는 지난번 게시물에 올렸습니다. https://www.ddengle.com/index.php?mid=develop&amp;category=6201952&amp;document_srl=11829923   봇으로 소액으로만 매매하다가 지난번 대폭락 이후에 당시 시세로... 9 file 1 1696
제타마인드
2020.04.15
1727 개발 빗썸 호가창 API 콜 하는중에 빗썸 자체 서버 오류가 나는 경우도 있네요 Traceback (most recent call last):   File &quot;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\threading.py&quot;, line 916, in _bootstrap_inner     self.run()   File &quot;C:\Program Files (x8... 4 0 996
월하소년
2020.03.30
1726 질문 업비트 웹소켓 데이터 활용중인데요. 클래스 내부에서 소켓 함수 정의가 안되네요.     업비트 웹소켓 데이터 활용중인데요. 클래스 내부에서 소켓 함수 정의가 안되네요.   클래스 내부에 정의하면 아래와 같이 에러가 뜨네요.     ws = websocket.WebSocketApp(&quot;wss://api.upbit.com/websocket/v1&quot;,... 2 0 965
슬픈낙여
2020.03.29
개발 업비트 데이터를 웹소켓으로 가져오는데요. 메인함수가 실행이 안됩니다. 아시는분좀 봐주세여 # 업비트 웹소켓 호가 조회 def on_message(ws, message): global testText get_message = json.loads(message.decode('utf-8')) # json 형태로 변경하는 방법인건 같음 print('message : ' + str(get_message)) def... 14 0 1114
슬픈낙여
2020.03.28
1724 질문 캣봇 정식 오픈했나요?           오픈했나요? 한번써보고싶은데 바쁘다보니 기회를놓쳤네요..             1 0 789
SIC
2020.03.20
1723 질문 캐셔레스트..API 파이썬으로 구현하신분 코드좀 구매할수 있을까요??   이거 아래꺼 코드구현 하신분..   토큰발행 시세조회 구매 잔고조회 주문조회 주문취소   20만원에 코드좀 구매할 수 있을까요?   뭔가    캐셔는 친절하지가 않네여 개발 문서들이.. 제가 실력도 없는것도 있지만.... 13 0 755
슬픈낙여
2020.03.17
1722 개발 주식 트레이딩 시스템을 만들때   안녕하세요.  땡글 선배님들 코로나에 항상 몸 건강하십시요.   코인 트레이딩 시스템을 만들다가 주식 트레이딩 시스템을 만들어 보려고 합니다.     (질문) 1.  HTS 시스템이 어느 증권사가 가장 빠른가요?      ... 1 0 732
부자아들
2020.03.10
1721 개발 통합 전자 웹지갑 제작해보았습니다. 통합 전자 웹지갑 제작해보았습니다. https://www.samplewallet.org/   이더리움, ERC-20 토큰은 자체 풀노드 노드서버 구축해서 RCP 통신함. 거래소와 같이 DB 쓰는 버전와 안쓰는 버전 2개로 개발.   관리자모드도 ... 5 3 836
김대박
2020.02.29
1720 개발 취미로 비트멕스 트레이딩봇 개발중입니다.    제 경우는 개발경력보다 주식경력이 더 길고, 프로그래밍 배울때부터 자동매매봇을 만들고 싶은 마음이 항상 있었는데 작년10월쯤부터 본격적으로 개발에 착수해서 퇴근후에 업데이트와 테스트를 반복하고 있습니... 4 file 0 1040
제타마인드
2020.02.27
1719 질문 빗썸 API 질문드립니다 안녕하세요 현재 업비트 전용 펌핑알람 &quot;Bitpump&quot; 개발중인 1인 개발자입니다. https://play.google.com/store/apps/details?id=bitpump.isi.com.bitpump 다운로드수는 1천회 넘었고 사용자분들이 자꾸 빗썸을 추가해... 1 651
printf
2020.02.25
1718 개발 CAAT Bot Standard (자동매매) 테스터를 모집합니다 (개인/그룹) 안녕하십니까 BigK 입니다.   여러 시행착오와 검증을 거쳐 드디어 유저 테스트 단계까지 오게 되었습니다. 그동안 땡글 유저들을 통해 정보 공유를 받으면서 많은 도움을 받았습니다. 처음 모집을 하는 만큼 땡글에... 15 file 1 872
CAATBot
2020.02.21
1717 질문 react-native run-android 실행 오류를 해결하고자 합니다. info Running jetifier to migrate libraries to AndroidX. You can disable it using &quot;--no-jetifier&quot; flag. Jetifier found 864 file(s) to forward-jetify. Using 12 workers... info Starting JS server... adb s... 5 0 903
uurjjo
2020.02.14
1716 개발 자동 트레이딩을 웹 서비스로 만들때 어떻게 해야 좋을까요      안녕하세요.  선배님들  문의 좀 드릴게 있는데요.      1. 자동 트레이딩을 웹 서비스 형태로 만들어 보려하는데요.    python/django 로 할려고요.    샘플 소스코드(python/django)가 있다면 추천을 부탁드려... 1 0 857
부자아들
2020.02.12
1715 질문 리플 관련 질문드려요     리플 노드를 구축해서 운영해보려고 하는데  키페어 생성까진 원활하게했는데 account_id가 따로 또 있어야하더군요  이거는 어디서 얻는건지 혹시 알수있을까요? api 문서 조회해도 안보이네요 ㅠㅠ            ... 0 963
페어
2020.01.10
1714 개발 타키온 프로젝트 개발 소스가 일부 공개되었네요.       https://github.com/tachyon-protocol 빗썸에 상장된 IPX 토큰으로 유명한  블록체인 인터넷 프로토콜 '타키온'의 깃헙입니다.   타키온은 주로 프로젝트 개발에 Go 언어를 사용하는데요, Tachyon Vpn은 오픈 ... file 0 1052
아수라발발타KYC
2019.12.30
1713 개발 추세선 알고리즘과 개발코드 질문   추세선 매매법은 익히 잘 알려져 있습니다. 현재 저는 그러한 매매법을 시스템트레이딩으로 구현해보고자 하는데요. 코드로도 분명 구현이 가능할 것으로 보입니다. 예를 들면 두 점을 잇는 직선의 일차 그래프에서... 5 1 1105
CAATBot
2019.12.29
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 87 Next
/ 87
default debug random = 0 / type = READ / detected = READ