develop custom_top_html:no
default debug random = 2 / type = READ / detected = READ

안녕하세요. 

업비트 api가 얼마 전에 공개되어서 호가창 불러오기 시도중인데 잘 안 되네요..

 

1. 업비트 공식 문서의 예제에 있는 wscat 이용한 방식은 잘 됩니다. (O)

$ wscat -c wss://api.upbit.com/websocket/v1
connected (press CTRL+C to quit)
[{"ticket":"test"},{"type":"orderbook","codes":["KRW-BTC"]}]
< {"code":"KRW-BTC","opening_price":7030000.00000000,"high_price":7044 bla bla ...........

 

 

2. https://www.websocket.org/echo.html 에서 간단히 웹소켓 테스트 해볼 수 있는데, 잘 됩니다. (O)

 

3. 크롬 extension 중 하나인 Simple WebSocketClient 라는 프로그램에서는 안됩니다. (X)

연결은 되지만 [{"ticket":"asdAASD"},{"type":"orderbook","codes":["KRW-BTC"]}] 을 보내도 반응이 없습니다.

 

4. 코틀린(자바)으로 아래 클래스처럼 만들어 해봤는데 안됩니다. (X). OkHttp의 웹소켓을 이용

연결은 되지만 [{"ticket":"asdAASD"},{"type":"orderbook","codes":["KRW-BTC"]}] 을 보내도 반응이 없습니다.

 

class UpbitWsClient {
    val gson = Gson()
    var webSocketList: MutableList<WebSocket> = mutableListOf()

    val orderbookListener = object : WebSocketListener() {
        override fun onOpen(webSocket: WebSocket?, response: Response?) {
            println("onOpen, $response")

            webSocket?.send(createOrderbookTicket())
        }

        override fun onMessage(webSocket: WebSocket?, text: String?) {
            println("onMessage, $text")
        }

        override fun onClosed(webSocket: WebSocket?, code: Int, reason: String?) {
            println("onClosed")
        }

        override fun onFailure(webSocket: WebSocket?, t: Throwable?, response: Response?) {
            println("onFailure")
        }
    }

    fun startListenOrderbook() {
        val request = Request.Builder()
                .url("wss://api.upbit.com/websocket/v1")
                .build()
        val okHttpClient = OkHttpClient()

        val webSocket = okHttpClient.newWebSocket(request, orderbookListener)
        webSocketList.add(webSocket)
    }

    fun createOrderbookTicket(): String {
        val ticket = Ticket("test")
        val codeList = arrayListOf("KRW-BTC")
        val type = Type("trade", codeList)

        return gson.toJson(arrayListOf(ticket, type))
    }

    data class Ticket(val ticket: String)
    data class Type(val type: String, val codes: List<String>)

    fun close() {
        webSocketList.forEach { it.close(1000, "bye") }
    }
}

 

 

서버 주소를 업비트가 아닌 에코서버 (wss://echo.websocket.org) 로 지정해 보았더니 이 경우에는

1, 2, 3, 4 전부 잘 됩니다.

 

아 그리고 참고로, send 시 값을 엉터리로 보내면 (예: abasdfearg) 

1 -> {"error":{"name":"WRONG_FORMAT","message":"Format이 맞지 않습니다."}}

2 -> RECEIVED: [object Blob] (1과 똑같이 오는 걸로 보입니다)

3 -> 반응 없음

4 -> 반응 없음

 

제가 뭘 잘못한 것일까요 ㅠ

 

 

 

-------------------------------------

꼬리말

* 게시글 내용 삭제레벨 강등

* 질문은 각 주제별 게시판에.

 

비트코인 암호화화폐 커뮤니티 땡글~ 땡글~

-------------------------------------

79
댓글 10
  • ?
    큰따옴표 앞에 역슬래시를 넣어 보내보세요
  • ?
    @엑셀러레이터

    아 네.. json string escape 해봤는데 안 됩니다ㅠ 답변 달아주셔서 감사합니다^^

  • ?
    전 파이썬으로 테스트 했습니다. 같지는 않겠지만 소켓 연결 후 보내는 포맷데이터 [{"ticket":"asdAASD"},{"type":"orderbook","codes":["KRW-BTC"]}] 를 그냥 문자열로 해서 보내서셔 소켓 자체가 문제가 없는지 부터 보시는게 좋을듯 합니다.
  • ?
    @이더남아

    아 createOrderbookTicket() 를 [{"ticket":"asdAASD"},{"type":"orderbook","codes":["KRW-BTC"]}] 로 대체하라는 말씀이시죠?
    네 안 됩니다..
    참고로 다른 엉뚱한 문자열을 보내면 잘못된 포맷이라고 답장이 와야되는데 그것도 안 오네요 ㅠ

    소켓 자체가 문제가 있는건지.. 일단 onOpen은 찍히긴 하거든요. 기본 소켓이라든지.. 다른 방식으로도 시도해봐야겠네요. ㅎㅎ 감사합니다

     

    이더남아 님은 파이선으로 잘 되시나보군요!

  • ?
    @비락식
    자바이니 제가 도움 드리기가 애매하네요. 혹시나 참고하시라고 파이썬 소스 붙여드립니다.

    import websocket

    def on_message(ws, messgae):
    print(message)

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

    thread.start_new_thread(run, ())


    if __name__ == "__main__":

    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()
  • ?
    @이더남아
    감사합니다^^
  • ?
    저도 3일재 고생하고 있습니다.
    vb.net 쓰고 있고요.

    일단 API 키 없이 연결은 되었는데 send를 하면 잘못된 format이라고 만 리턴와서 뭐가 잘몯되었는지 찾기 어렵네요.;


    Public Class openmsg
    Public Property ticket As String
    Public Property type As String
    Public Property codes As String()
    End Class

    -------------------------------------------------

    Sub sOpenedsend()
    If websocket.State = 1 Then

    Dim product As New openmsg()
    product.ticket = "test"
    product.type = "ticker"
    product.codes = New String() {"KRW-BTC", "USD-BTC"}
    Dim output As String = JsonConvert.SerializeObject(product)

    websocket.Send(output)


    End If
    End Sub

    이런식으로 보냈습니다.
    이더님아 리플 보면 앞 뒤에 대괄호가 들어가는데...그거때문인가 싶기도 하고...
    테스트 해봐야 겠네요
  • ?
    @라게르
    ㅎㅎ 아마 메시지대로 잘못된 포멧인것 같네요. output을 이더님아 님 스트링으로 그대로 넣고 테스트해보시면 될듯. 전 잘못된 포멧이라는 답장도 안와서 문제네요ㅠ
  • ?
    OKHttp의 WebSocketListener에서 아래 메서드를 override하셔야 합니다.

    @Override
    public void onMessage(WebSocket webSocket, ByteString text) {
    }

    OKHttp 소스코드 까서 올라가다보면 저쪽으로 분기해서 호출하더군요. 저도 고생 좀 했습니다.
  • ?
    @maceopark
    헉 이제야 봤네요. ByteString.....!!! 감사합니다 잘 되네요 ^^
default debug random = 0 / type = READ / detected = READ

List of Articles
번호 분류 제목 추천 수 조회 수 글쓴이 날짜
1660 개발 . . 2 0 6172
코인개발자
2017.05.24
1659 개발 Bitfinex 마진 확인 사이트 http://margin.ml   빗파의 마진 포지션 현황을 볼 수 있는 사이트입니다.   시험기간인데 시험공부는 손에 잡히지도 않아서   컴퓨터 앞에 앉았더니 이런게 튀어나왔습니다(-_-);;   써주실 분... 5 file 6 6102
Synkc
2017.09.22
1658 개발 거래소 api로 분석프로그램을 개발했습니다. 80%정도 개발진행상태이고  테스트해가며 조심씩 수정하고 있습니다.   개발이 완료되면  일반인에게 공개할건데 많은분들이 사용하도록 광고를 달고 무료배포계획입니다.   현재 완성된 데이타... 21 file 11 6091
빈들에서다
2019.04.18
1657 개발 빗썸 자동매매 프로그램을 개발 완료 하였습니다 생각보다 긴 시간이였는데요 우여곡절 끝에 !!!    수정 보완하고 프로그램을 완성 하였습니다   테스트에 참여 해주신 땡글 회원님께 감사 드립니다      http://bitsniper.co.kr/     이름은 ... 21 1 6079
수한이
2017.12.24
1656 개발 안녕하세요 coinext개발자입니다. 오픈소스로 거래소 플랫폼을 공개한 coinext개발자입니다. 다음번으로 오픈소스 공개할 소스/플랫폼은 이더리움같은 분산 어플리케이션 플랫폼을 공개하도록 하겠습니다. 아직은 시작은 안했지만... 6 13 6077
coinext
2017.12.26
1655 개발 블럭체인의 단점: 블럭체인의 크기에 대한 개인적인 아이디어 1. 현재 블럭체인의 크기 1). 비트코인 블럭체인 크기: 약 70 Gbyte (https://blockchain.info/charts/blocks-size) 2). 이더리움 거래원장 크기: 약 16Gbyte (http://cryptomining-blog.com/tag... 7 1 5985
loum
2016.06.03
1654 개발 업비트 API중 주문 부분 조언부탁드립니다. 안녕하세요 API에 관심이 있어 조금씩 공부를 하고 있습니다.    java로 구현중인데 몇개는 호출이되는데 주문이 호출이 안되서 조언을 구하고자 글을올립니다.  고객센터에 문의했는데 가격을 ... 15 0 5958
유녀리
2018.07.03
1653 개발 비트코인의 script language에 대한 내용입니다. 비코의 거래부분에 스크립트 언어가 포함되었는데 이에 대한 내용입니다. https://drive.google.com/file/d/0B5hmGlVuh8KZNUpCQ1l4WS1pTFU/view?usp=sharing 4 4 5906
loum
2015.04.02
1652 개발 [업비트 전용] 비트시그널 v1.0.2 업데이트 / 조건검색프로그램 / 자동매매 안녕하세요. 업비트 자동매매 프로그램 비트시그널입니다.  본 프로그램은 단순한 설정값이 입력된 자동매매 프로그램이 아닌,  주식시장에서 쓰던 영웅문과 같은 방식으로 사용자가 본인만의 조... 1 file 0 5895
비트시그널
2018.01.27
1651 개발 환율 api USD-KRW 환율 api 소개좀 부탁드립니다.   yahoo api 환율 정보는 서비스 종료되었는지 결과가 null만 뜨네요.   https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finan... 1 0 5874
debugger
2017.11.27
1650 개발 COSMOS 이더민트를 직접 테스트해봤습니다 그런데.. (수정 추가) 일전에 @꿀맨 님께서 COSMOS 이더민트를 ESN에 적용하는 것이 어떻겠냐는 제안을 주신 적이 있습니다.   며칠 전에 제가 직접 살펴보고 답변을 드렸는데, 땡글에도 글을 올리는 것이 좋을 것 같... 36 9 5866
ethminer
2019.03.22
개발 자바(or 코틀린)로 업비트 호가창 api 불러와보신 분? 안녕하세요.  업비트 api가 얼마 전에 공개되어서 호가창 불러오기 시도중인데 잘 안 되네요..   1. 업비트 공식 문서의 예제에 있는 wscat 이용한 방식은 잘 됩니다. (O) $ wscat -c wss://api.... 10 0 5847
비락식
2018.06.24
1648 개발 다중 수천대 가능 무료 원격조정 모니터링 알람 제어 ( 꽁짜 )     천리님 글  1. 마이너 컨픽 파일 수정2. 컨픽 파일 일괄 업로드3. 마이너 재시작4. 컴퓨터 리부팅5. 마이너 버전 업데이트 시 파일 일괄 업로드6. 마이닝 프로그램 일괄 변경 (ex. Claymore... 35 file 76 5839
다롱잉임
2018.04.08
1647 개발 거래소의 지불능력 증명 중앙관리기구가 없는 암호화통화를 거래하다 보면, 많은 장점에도 불구하고 항상 거래소가 염려됩니다. 지난번 곡스의 경우나 여러 소규모 거래소들의 경우에서 처럼 하루아침에 문닫는 경우가 ... 13 file 6 5824
atomrigs
2014.09.16
1646 개발 폴로니엑스 API 골격 공유합니다. 두시간전부터 여기저기서 복붙중인데 파이썬 2.7 기준입니다. import urllib import urllib2 import json import time import hmac,hashlib api_key = '여기에 API_key 넣으세요' api_secret = '... 12 1 5750
bitcoinuserx
2016.04.27
1645 개발 이더리움 블럭에 대한 개략적인 설명한 자료를 올립니다. 제가 작성한 이더리움 블럭 관련 자료를 올립니다.   https://drive.google.com/file/d/0B5hmGlVuh8KZcU1zTkdISlAzdnc/view?usp=sharing       8 file 6 5706
loum
2015.04.08
1644 개발 채굴 관리프로그램 MINE ASSIST v1.2 공개 및 상용 서비스 일정 안내 안녕하세요. MINE ASSIST를 개발하고 있는 파이리입니다.   MINE ASSIST 새 버전과 상용 서비스 일정에 대해서 알려드립니다.   MINE ASSIST 다운로드 링크( https://www.mineassist.net/control... 38 file 13 5700
파이리
2017.07.14
1643 질문 [질문 or 도움 요청] Bitmex API order 명령 내리기 (Python)    안녕하세요. 종종 땡글에 거래소 API 관련하여 문의하고 있는 사람입니다.  이번에는 Bitmex API 도전하고 있는데 order (주문) 명령 내리는 것에 막혀 문의를 드리고자 합니다.      제가 작... 5 1 5641
hbled
2018.09.19
1642 개발 이더리움과 스마트 컨트랙(1) 안녕하세요. 파이리입니다. 이더리움과 스마트 컨트랙이라는 주제로 글을 써보려고 합니다. 어디까지 쓰게 될지는 모르겠지만, 나중에 묶어서 책이 되었으면 하는 작은 소망이 있네요.   이더리... 11 file 12 5629
파이리
2018.02.12
1641 개발 비트코인이 현실생활에서 많이 사용되길 기대하며 ^^   Hello world,   비트코인 의 영원한 발전을 희망합니다! 땡글인으로써 비트코인 관련한 새로운 제품을 선보이게 되서 기쁘게 생각합니다. 오늘 소개해 드릴 상품은 비트코인으로 물건을 판매하... 5 14 5628
마이닝링
2017.08.01
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 92 Next
/ 92
default debug random = 0 / type = READ / detected = READ