goldenChat base source add
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>WebSocket Connection Test</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@stomp/stompjs@7/bundles/stomp.umd.min.js"></script>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; padding: 20px; }
|
||||
#status { padding: 10px; margin: 10px 0; border-radius: 5px; }
|
||||
.connected { background: #4caf50; color: white; }
|
||||
.disconnected { background: #f44336; color: white; }
|
||||
.connecting { background: #ff9800; color: white; }
|
||||
#messages { border: 1px solid #ccc; padding: 10px; height: 400px; overflow-y: auto; }
|
||||
.message { padding: 5px; border-bottom: 1px solid #eee; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>🔌 WebSocket 연결 테스트</h1>
|
||||
<div id="status" class="connecting">연결 중...</div>
|
||||
<div>
|
||||
<strong>WebSocket URL:</strong> <span id="ws-url"></span>
|
||||
</div>
|
||||
<div>
|
||||
<strong>구독 토픽:</strong> /topic/candles/KRW-BTC/1m
|
||||
</div>
|
||||
<hr>
|
||||
<h2>📨 수신 메시지</h2>
|
||||
<div id="messages"></div>
|
||||
|
||||
<script>
|
||||
// 현재 페이지의 프로토콜에 맞게 URL 생성
|
||||
const protocol = window.location.protocol; // 'http:' or 'https:'
|
||||
const host = window.location.host;
|
||||
const WS_URL = `${protocol}//${host}/ws`;
|
||||
|
||||
document.getElementById('ws-url').textContent = WS_URL;
|
||||
console.log('🔗 Connecting to:', WS_URL);
|
||||
|
||||
const client = new StompJs.Client({
|
||||
webSocketFactory: () => new SockJS(WS_URL),
|
||||
debug: (str) => {
|
||||
console.log('[STOMP Debug]', str);
|
||||
},
|
||||
reconnectDelay: 5000,
|
||||
heartbeatIncoming: 4000,
|
||||
heartbeatOutgoing: 4000,
|
||||
});
|
||||
|
||||
client.onConnect = (frame) => {
|
||||
console.log('✅ Connected:', frame);
|
||||
document.getElementById('status').className = 'connected';
|
||||
document.getElementById('status').textContent = '✅ 연결됨 - ' + new Date().toLocaleTimeString();
|
||||
|
||||
// KRW-BTC 1분봉 구독
|
||||
const subscription = client.subscribe('/topic/candles/KRW-BTC/1m', (message) => {
|
||||
console.log('📨 Message received:', message.body);
|
||||
|
||||
try {
|
||||
const data = JSON.parse(message.body);
|
||||
|
||||
const div = document.createElement('div');
|
||||
div.className = 'message';
|
||||
div.innerHTML = `
|
||||
<strong>[${new Date().toLocaleTimeString()}]</strong>
|
||||
${data.market} ${data.interval}:
|
||||
${data.candles.length} candle(s),
|
||||
type: ${data.type},
|
||||
price: ${data.candles[0]?.close || 'N/A'}
|
||||
`;
|
||||
document.getElementById('messages').prepend(div);
|
||||
} catch (e) {
|
||||
console.error('Failed to parse message:', e);
|
||||
}
|
||||
});
|
||||
|
||||
console.log('✅ Subscribed to /topic/candles/KRW-BTC/1m');
|
||||
|
||||
const div = document.createElement('div');
|
||||
div.className = 'message';
|
||||
div.innerHTML = `<strong>[${new Date().toLocaleTimeString()}]</strong> ✅ 구독 완료: /topic/candles/KRW-BTC/1m`;
|
||||
document.getElementById('messages').prepend(div);
|
||||
};
|
||||
|
||||
client.onDisconnect = () => {
|
||||
console.log('🔌 Disconnected');
|
||||
document.getElementById('status').className = 'disconnected';
|
||||
document.getElementById('status').textContent = '🔌 연결 끊김 - ' + new Date().toLocaleTimeString();
|
||||
|
||||
const div = document.createElement('div');
|
||||
div.className = 'message';
|
||||
div.innerHTML = `<strong>[${new Date().toLocaleTimeString()}]</strong> 🔌 연결 끊김`;
|
||||
document.getElementById('messages').prepend(div);
|
||||
};
|
||||
|
||||
client.onStompError = (frame) => {
|
||||
console.error('❌ STOMP Error:', frame);
|
||||
document.getElementById('status').className = 'disconnected';
|
||||
document.getElementById('status').textContent = '❌ 오류: ' + (frame.headers.message || 'Unknown error');
|
||||
|
||||
const div = document.createElement('div');
|
||||
div.className = 'message';
|
||||
div.innerHTML = `<strong>[${new Date().toLocaleTimeString()}]</strong> ❌ 오류: ${frame.headers.message || 'Unknown'}`;
|
||||
document.getElementById('messages').prepend(div);
|
||||
};
|
||||
|
||||
client.onWebSocketError = (event) => {
|
||||
console.error('❌ WebSocket Error:', event);
|
||||
document.getElementById('status').className = 'disconnected';
|
||||
document.getElementById('status').textContent = '❌ WebSocket 오류';
|
||||
};
|
||||
|
||||
// 연결 시작
|
||||
console.log('🚀 Activating STOMP client...');
|
||||
client.activate();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user