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

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
1726 질문 업비트 웹소켓 데이터 활용중인데요. 클래스 내부에서 소켓 함수 정의가 안되네요.     업비트 웹소켓 데이터 활용중인데요. 클래스 내부에서 소켓 함수 정의가 안되네요.   클래스 내부에 정의하면 아래와 같이 에러가 뜨네요.     ws = websocket.WebSocketApp(&quot;wss://api.upbi... 2 0 6778
슬픈낙여
2020.03.29
개발 업비트 데이터를 웹소켓으로 가져오는데요. 메인함수가 실행이 안됩니다. 아시는분좀 봐주세여 # 업비트 웹소켓 호가 조회 def on_message(ws, message): global testText get_message = json.loads(message.decode('utf-8')) # json 형태로 변경하는 방법인건 같음 print('message : ' + s... 14 0 7865
슬픈낙여
2020.03.28
1724 질문 캣봇 정식 오픈했나요?           오픈했나요? 한번써보고싶은데 바쁘다보니 기회를놓쳤네요..             1 0 5355
SIC
2020.03.20
1723 질문 캐셔레스트..API 파이썬으로 구현하신분 코드좀 구매할수 있을까요??   이거 아래꺼 코드구현 하신분..   토큰발행 시세조회 구매 잔고조회 주문조회 주문취소   20만원에 코드좀 구매할 수 있을까요?   뭔가    캐셔는 친절하지가 않네여 개발 문서들이.. 제가 실... 13 0 4517
슬픈낙여
2020.03.17
1722 개발 주식 트레이딩 시스템을 만들때   안녕하세요.  땡글 선배님들 코로나에 항상 몸 건강하십시요.   코인 트레이딩 시스템을 만들다가 주식 트레이딩 시스템을 만들어 보려고 합니다.     (질문) 1.  HTS 시스템이 어느 증권사가 ... 1 0 4243
부자아들
2020.03.10
1721 개발 통합 전자 웹지갑 제작해보았습니다. 통합 전자 웹지갑 제작해보았습니다. https://www.samplewallet.org/   이더리움, ERC-20 토큰은 자체 풀노드 노드서버 구축해서 RCP 통신함. 거래소와 같이 DB 쓰는 버전와 안쓰는 버전 2개로 ... 5 4 4248
김대박
2020.02.29
1720 개발 취미로 비트멕스 트레이딩봇 개발중입니다.    제 경우는 개발경력보다 주식경력이 더 길고, 프로그래밍 배울때부터 자동매매봇을 만들고 싶은 마음이 항상 있었는데 작년10월쯤부터 본격적으로 개발에 착수해서 퇴근후에 업데이트와 테스... 4 file 0 5232
제타마인드
2020.02.27
1719 질문 빗썸 API 질문드립니다 안녕하세요 현재 업비트 전용 펌핑알람 &quot;Bitpump&quot; 개발중인 1인 개발자입니다. https://play.google.com/store/apps/details?id=bitpump.isi.com.bitpump 다운로드수는 1천회 넘었고 사용자분들... 1 3321
printf
2020.02.25
1718 개발 CAAT Bot Standard (자동매매) 테스터를 모집합니다 (개인/그룹) 안녕하십니까 BigK 입니다.   여러 시행착오와 검증을 거쳐 드디어 유저 테스트 단계까지 오게 되었습니다. 그동안 땡글 유저들을 통해 정보 공유를 받으면서 많은 도움을 받았습니다. 처음 모집... 15 file 1 2325
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 Startin... 5 0 2115
uurjjo
2020.02.14
1716 개발 자동 트레이딩을 웹 서비스로 만들때 어떻게 해야 좋을까요      안녕하세요.  선배님들  문의 좀 드릴게 있는데요.      1. 자동 트레이딩을 웹 서비스 형태로 만들어 보려하는데요.    python/django 로 할려고요.    샘플 소스코드(python/django)가 있... 1 0 1386
부자아들
2020.02.12
1715 질문 리플 관련 질문드려요     리플 노드를 구축해서 운영해보려고 하는데  키페어 생성까진 원활하게했는데 account_id가 따로 또 있어야하더군요  이거는 어디서 얻는건지 혹시 알수있을까요? api 문서 조회해도 안보이... 0 1345
페어
2020.01.10
1714 개발 타키온 프로젝트 개발 소스가 일부 공개되었네요.       https://github.com/tachyon-protocol 빗썸에 상장된 IPX 토큰으로 유명한  블록체인 인터넷 프로토콜 '타키온'의 깃헙입니다.   타키온은 주로 프로젝트 개발에 Go 언어를 사용하는데요, ... file 0 1513
아수라발발타KYC
2019.12.30
1713 개발 추세선 알고리즘과 개발코드 질문   추세선 매매법은 익히 잘 알려져 있습니다. 현재 저는 그러한 매매법을 시스템트레이딩으로 구현해보고자 하는데요. 코드로도 분명 구현이 가능할 것으로 보입니다. 예를 들면 두 점을 잇는 직... 5 1 1873
CAATBot
2019.12.29
1712 질문 업비트 Open API 암호화폐 출금주소 에러   혹시 리플이나 이오스 업비트 OpenAPI 에 출금주소 등록 정상적으로 하신 분 있나요?   잘 사용중인 주소인데 등록하려고 하면 올바른 주소가 아닙니다라는 에러가 뜨네요...                 ... 0 1436
lkjdf
2019.12.28
1711 개발 ETH 풀노드 구축후 datadir 사이즈는 사용하면 할 수 록 커집니다. 적어도 1T ssd 쓰셔야 해요.   ETH 풀노드 구축후 datadir 사이즈는 사용하면 할 수 록 커집니다   풀노드 구축후 이제는 1T ssd 에 풀노드를 올리셔야 합니다.   최근 작업했던 다수의 프로젝트에서 ETH 풀노드 datadir 폴... 1 1 1382
김대박
2019.12.26
1710 질문 고팍스 API 암호화폐 출금?   고팍스 API를 보고 있는데 출금에 대한 예제가 없네요.   혹시 코인원처럼 고팍스도 API로는 암호화폐 출금이 불가능한가요?                 0 1136
skeee01
2019.11.30
1709 개발 V SYSTEMS 테스트넷 접속 방법입니다.   VSYS의 슈퍼노드 후보로 등록한 홍콩의 마이닝풀 Forbole에서는 미디엄 블로그를 통해 VSYS의 테스트넷 액세스 방법을 공유하였습니다.    출처: https://medium.com/forbole/joining-v-system... file 2 987
아수라발발타KYC
2019.11.27
1708 개발 홍보글은 아니고 private blockchain 개발에 참조하시라고 올립니다      private blockchain은 폐쇄돼있어 회사 관계자 외에는 장부를 아무도 못봅니다 은행들이 이 private blockchain 방식을 취하고 있고 국제 국내 은행들은 이런 방식을 취할 수밖에 없습니다 ... 4 2 531
핵심코어보기
2019.11.26
1707 질문 EOS 에서 RAM,CPU,NET 에 EOS 할당후 서비스 접을 때 EOS 를 다시 빼올 수 있나요?     최근 EOS 토큰을 제작하고 잘 사용하고 있습니다.   최근 EOS 토큰 발송이 실패될 때가 있습니다. 그래서 RAM,CPU,NET 이 부족해서 100만원  EOS 는 더 투입하였습니다. 그런데 또 간혹 발생... 1 2 849
김대박
2019.11.26
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 93 Next
/ 93
default debug random = 0 / type = READ / detected = READ