마스터욱 1 1,684 0 0

정말 업비트 API 메뉴얼 부실하다...

샘플 소스라도 하나라도 만들어 보여주면 이렇게 삽질을 하진 않으련만...

결론적으로 아래와 같이 구현을 했습니다.

가장 핵심은 소켓타입을 "arraybuffer" 로 해야하는 것과, 데이터를 arraybuffer로 받고나서 string 으로 변경을 해야하는 점이 체크포인트다.

 

 

<!DOCTYPE html> 

<html>

<head>

<meta charset="utf-8" />

<title>WebSocket 테스트</title>

<script language="javascript" type="text/javascript">

 

var wsUri = "wss://api.upbit.com/websocket/v1";

var output;

 

function init()

{

output = document.getElementById("output");

testWebSocket();

}

 

function testWebSocket()

{

websocket = new WebSocket(wsUri);

websocket.binaryType = 'arraybuffer';

//websocket.binaryType = 'Blob';

//websocket.binaryType = 'String';

websocket.onopen = function(evt) { onOpen(evt) ;};

websocket.onclose = function(evt) { onClose(evt) };

websocket.onmessage = function(evt) { onMessage(evt) };

websocket.onerror = function(evt) { onError(evt) };

}

 

function onOpen(evt)

{

writeToScreen("연결완료");

var msg = [

{

"ticket" : "TEST",

},

{

"type" : "ticker",

"codes" : ["KRW-BTC"]

}

];

msg = JSON.stringify(msg);

doSend(msg);

}

 

function onClose(evt)

{

writeToScreen("연결해제");

}

 

function onMessage(evt)

{

//console.log(evt.data);

 

var enc = new TextDecoder("utf-8");

var arr = new Uint8Array(evt.data);

console.log(enc.decode(arr));

 

writeToScreen('<span style="color: blue;">수신: ' + evt.data+'</span>');

websocket.close();

}

 

function onError(evt)

{

writeToScreen('<span style="color: red;">에러:</span> ' + evt.data);

}

 

function doSend(message)

{

writeToScreen("발신: " + message);

websocket.send(message);

}

 

function writeToScreen(message)

{

var pre = document.createElement("p");

pre.style.wordWrap = "break-word";

pre.innerHTML = message;

output.appendChild(pre);

}

 

window.addEventListener("load", init, false);

 

</script>

</head>

<body>

<h2>WebSocket Test</h2>

<div id="output"></div>

</body>

</html>

 


 


 

Comments [1]

비회원
와우 당신의 지식에 감탄했습니다

제목 글쓴이
javascript : JSON 데이터 안의 데이터를 동적으로 바꾸는 방법 마스터욱
자바스크립트 팝업(POPUP) 자동(Auto) 리사이징(Resizing) 마스터욱
자바스크립트 get 파라메터를 string 으로 리턴해주는 함수 마스터욱
비트맥스API Javascript Websocket Private API 연결 마스터욱
JSON 데이터를 Table 코드로 보기좋게 변경해주는 함수(재귀) 마스터욱
navigator.geolocation 쉽게 사용하기 마스터욱
input 박스 소수점 2자리 제한 스크립트 마스터욱
HTML5 스토리지(localStorage)의 사용 마스터욱
가장 쓸만한 슬라이드 jquery 마스터욱
스윗알럿 자주쓰는거 메모 마스터욱
안드로이드, IOS, PC 구분방법 마스터욱
huobi websocket blob 데이터 처리방법 댓글 2 마스터욱
okex 거래소 websocket blob 데이터 처리방법 마스터욱
웹에서 간단하게 사운드를 출력하는 방법 마스터욱
트레이딩뷰(trading view) 차트 API 개발 댓글 8 마스터욱
브라우저 높이(Height) 값이 변경될때, 스크립트 실행시키기 마스터욱
서버시간과 클라이언트시간 똑같이 맞추기 마스터욱
input number maxlength 넣기 마스터욱
sweetalert.js callback 구현 마스터욱
PDF.js 를 이용한 브라우저상에서 PDF 바로 보기 마스터욱
카테고리