develop custom_top_html:no
default debug random = 2 / 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
    감사합니다. 쪽지확인 부탁드립니다.
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
공지 ESN 블록체인 네트워크 종료 안내(2024.12.31) 1 30545
관리자
2024.12.27
공지 ESN 블록체인 네트워크 중단 및 토큰 스왑 일정 안내 26 2 64243
관리자
2024.11.15
1745 질문 파이썬 개발 초짜 질문입니다. 예전부터 문법 며칠 공부하고 몇달 쉬고 반복하다가 뭔가를 끄적이면서 하자고 해서 거래소 봇 텔레그램 연동중입니다.   (물론 소스코드도 오픈으로 한걸 짜집기 중입니다 ㅎㅎ)   elif msg['te... 2 0 22602
화려한출발
2020.09.03
1744 질문 거래소 시세 코드좀 구매할 수 있을까요??   우선 여기에 글을 작성해도 되는지 모르겠네요.. 안 된다면 사과부터 드립니다...   땡글 첫 화면 이런 시세 구현가능하신분 있을까요?   비쥬얼스튜디오 프로그램 사용하여 취미로 만들어 볼... 6 file 0 21890
꾸꾸까까
2020.09.01
1743 질문 geth 싱크 질문 드립니다~         &gt; eth.syncing { currentBlock: 9813345, highestBlock: 10710001, knownStates: 0, pulledStates: 0,   startingBlock: 9813245 } &gt; eth.blockNumber 0 knownStates pulledStates 0으로... 2 0 22278
모니모니1
2020.08.24
1742 질문 erc20지갑에 돈이 들어오면 윕에 전달하는 방법을 알고 싶습니다       현재 영카트로 물건을 구매시 제가 만든 erc20토큰 지갑주소로 erc20토큰을 받는 사이트을 제작중에 있습니다 여기서 erc20토큰을 받으면 회원등급을 올려주고 싶은데 erc20콜백해주는 웹... 2 0 22367
김징징
2020.08.21
1741 개발 거래소 API연동 봇 개발도움요청 안녕하세요. MBY_LAB 대표 정 순용입니다. 퀀트 서비스를 운영하고 있습니다. 저희 엠비와이랩이 바이낸스 브로커가 된 후  바이낸스에서의 자동매매 서비스를 지원하기 위해 바이낸스 API를 활... 1 0 22757
MBY_LAB
2020.08.20
1740 개발 [비트맥스(BITMEX)] 이더리움 눌림목 자동매매 봇 무료 배포 안녕하세요. 암호화폐/FX외환/해외선물 자동 매매를 개발하고있는 코인도리 팀입니다.   작년에 7월 땡글에서 처음 비트맥스 역추세 물타기 봇을 공개 했었습니다. 다들 아시다시피 역추세 매매... file 0 20634
coindori
2020.08.18
1739 개발 혹시 코인원이나 빗썸 API로 Liquidity 나 마켓메이킹 봇 개발 가능하신분 있나요?           혹시 코인원이나 빗썸 API로 Liquidity 나 마켓메이킹 봇 개발 가능하신분 있나요?   도움 좀 받고 싶습니다             1 0 18827
토끼눈깔
2020.08.14
1738 개발 비트멕스 HTS를 만들어 봤습니다.     본격적인 서비스전에 몇몇 지인들과 클로즈 베타테스트를 하고 유튜브를 통해 매일 점검하고 있습니다.   멘땅에 헤딩하는 차원으로 제작된지라 고생 많이 했네요.   조만간 자신만의 봇도 ... 7 file 5 20455
억소리
2020.08.05
1737 개발 ETH 풀노드 구축해드릴게요.   ETH 노드 구축은 트랜잭션을 발생시키기 위해서 필요로하죠 fast, full 등 여러가지 가 있으나, 트랜잭션 검증을 위해서는 풀노드가 필요로 합니다.   구축이란건 특별한 건 아니며 geth 데몬... 1 0 17268
김대박
2020.07.29
1736 개발 geth 에서 외부로 토큰 발송이 아주 오랫동안 펜딩되는 이유?       geth 에서 외부로 토큰 발송이 아주 오랫동안 펜딩되는 이유가 무엇이 있을까요? 벌써 5일째입니다.                 5 0 15169
김대박
2020.07.25
1735 개발 [전략공개]비트맥스, 바이빗, 업비트 추세매매프로그램(봇) 무료로 배포합니다 안녕하세요.   백테스트랑 일치하는 비트코인 추세매매프로그램(봇)을 무료로 배포합니다.   봇들을 몇가지 사용해봤는데 대부분 역추세매매봇이라서 큰수익을 기대하기는 어렵고   수익을 내다... 7 file 2 15825
Destroy
2020.07.24
1734 개발 빗썸 api 를 이용한 유틸 프로그램을 만들어보고있는데 조언해주시면 감사드립니다.   어떤 기능들이 들어가면 좋을까요?~? 취미삼아 + 학습용으로 개발 중이라 아직은 추후 업데이트 될때마다 자동으로 업데이트 되는 기능, 실시간 코인 상황 보여주는 기능 이 두가지밖에 안들어... 1 file 0 14983
끼야아아아알
2020.06.11
1733 개발 거래소 api로 프로그램 개발했습니다. 빗썸 api로 프로그램 개발했습니다. 친구의 제안으로 공부 할 겸 만들어 본게 여기까지 왔네요. 코인하는 친구의 아이디어와 저의 개발로 탄생했습니다.  기존 메이저앱에서 아쉬웠던점을 보강한... file 1 16636
스누피111
2020.06.02
1732 질문 직접 개발한 코인의 GPU 채굴은 어떻게 하나요? 라이트코인 포크로 코인을 만들었구요, 데몬에 setgenreate true n 명령으로 채굴 할 수도 있지만.. 제가 윈하는건 gpu 채굴입니다.   gpu 채굴 프로그램 몇개 받아봤는데, 다들 기존 유명 코인... 2 2 13091
비폭력무저항
2020.05.28
1731 개발 안녕하세요. 봇 개발 문의 드리려고 합니다.      여기 개시판에 이런 문의 드려도 되는지 모르겠습니다.      트레이딩 봇 개발 가능하신 분은 쪽지 부탁드립니다.      상세한건 쪽지나 텔레그렘으로 상담 드리겠습니다.                 0 10782
쏴니
2020.05.19
1730 개발 봇개발       트레이딩봇, 거래소등 요구하시는대로 완벽개발해드립니다. 쪽지주세요                 13 0 10401
송하늬다
2020.04.22
1729 개발 빗썸 프로(글로벌) API 에서 fee 를 구하는 방법 문의      안녕하세요. 선배님들  코로나로 부터  항상 건강지키시길 기원합니다.    다름이 아니라..  빗썸 프로 api 로 개발을 진행하고 있는데요.    fee 를 구하는 법에 대해 문의 드립니다.    2... 1 0 8442
부자아들
2020.04.18
1728 개발 트레이딩봇 한달 수익률 공개합니다.   어떤 봇인지는 지난번 게시물에 올렸습니다. https://www.ddengle.com/index.php?mid=develop&amp;category=6201952&amp;document_srl=11829923   봇으로 소액으로만 매매하다가 지난번 대폭... 11 file 1 16009
제타마인드
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;... 4 0 7182
월하소년
2020.03.30
1726 질문 업비트 웹소켓 데이터 활용중인데요. 클래스 내부에서 소켓 함수 정의가 안되네요.     업비트 웹소켓 데이터 활용중인데요. 클래스 내부에서 소켓 함수 정의가 안되네요.   클래스 내부에 정의하면 아래와 같이 에러가 뜨네요.     ws = websocket.WebSocketApp(&quot;wss://api.upbi... 2 0 6775
슬픈낙여
2020.03.29
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 93 Next
/ 93
default debug random = 0 / type = READ / detected = READ