41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
const WebSocket = require('ws');
|
||
|
||
const socket = new WebSocket('wss://ws.finnhub.io?token=d62ho41r01qlugeq3ge0d62ho41r01qlugeq3geg');
|
||
|
||
let received = false;
|
||
|
||
socket.on('open', () => {
|
||
console.log('✅ Finnhub 연결 성공!');
|
||
socket.send(JSON.stringify({ type: 'subscribe', symbol: 'TQQQ' }));
|
||
socket.send(JSON.stringify({ type: 'subscribe', symbol: 'QQQ' }));
|
||
console.log('📊 TQQQ, QQQ 구독 완료');
|
||
console.log('⏳ 실시간 데이터 수신 대기 중...\n');
|
||
});
|
||
|
||
socket.on('message', (data) => {
|
||
const message = JSON.parse(data);
|
||
if (message.type === 'trade' && message.data) {
|
||
received = true;
|
||
message.data.slice(0, 5).forEach(trade => {
|
||
const time = new Date(trade.t).toLocaleTimeString('ko-KR');
|
||
console.log(`📈 ${trade.s}: $${trade.p.toFixed(2)} | 거래량: ${trade.v.toLocaleString()} | ${time}`);
|
||
});
|
||
}
|
||
});
|
||
|
||
socket.on('error', (error) => {
|
||
console.error('❌ 에러:', error.message);
|
||
});
|
||
|
||
setTimeout(() => {
|
||
if (received) {
|
||
console.log('\n✅✅✅ 테스트 성공! 실시간 데이터 수신 확인됨');
|
||
console.log('🎯 08:30 고용지표 발표 시 사용 가능합니다!');
|
||
} else {
|
||
console.log('\n⚠️ 연결 성공, 하지만 데이터 아직 없음 (프리마켓 시간대)');
|
||
console.log('✅ 정규장 개장(23:30 KST) 시 데이터 수신 예상');
|
||
}
|
||
socket.close();
|
||
process.exit(0);
|
||
}, 6000);
|