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

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

제목 글쓴이
자바스크립트 날짜 더하기 함수 마스터욱
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 차이점 관리자
자바스크립트 number_format 관리자
xml 파싱, responseXML 이 작동안될때 관리자
동시스크롤 스크립트 관리자
카테고리