마스터욱 1 432 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]

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

제목 글쓴이
PDF.js 를 이용한 브라우저상에서 PDF 바로 보기 마스터욱
jquery-ui autocomplate focus 문제 마스터욱
(자작) 자바스크립트 GPS 값 받아오기 함수 마스터욱
자바스크립트 날짜 더하기 함수 마스터욱
jquery 현재 자신을 포함하고 있는 form 셀렉트 방법 마스터욱
자바스크립트(jquery) 트리뷰(treeview.js) 마스터욱
다음 카카오 지도(Daum KaKao Map API) API 기본소스코드 마스터욱
구글지도/구글맵(Google Map) 기본소스코드 마스터욱
업비트 API - 웹소켓(WebSocket) 연결성공 댓글 1 마스터욱
javascript - time to timestamp or timestamp to time 마스터욱
자바스크립트(javascript) - 숫자만 입력 마스터욱
자동으로 화면 풀스크린(Full Screen) 모드로 변경하기 마스터욱
스마트폰으로 접속시에 "바로가기" 아이콘 생성 마스터욱
네이버 스마트에디터(SmartEditor) span 태그가 강제로 붙는 현상 해결 마스터욱
자바스크립트(javascript) 일(Day),시간(Hours),분(Minute),초(Second) 더하기 마스터욱
JS - highcharts 차트 라이브러리 사용 마스터욱
jquery Ajax 원형 마스터욱
스마트 에디터 태그 제거 관리자
자바스크립트 페이징 관리자
자바스크립트 IE, Chrome 에서의 innerHTML 차이점 관리자
카테고리