VNC WebSocket 직접 연결 및 Canvas 렌더링 문제 완전 해결
- noVNC API 함수명 오류 수정 (sendPointer, sendKeyEvent -> sendKey) - Canvas 크기 자동 조정 문제 해결을 위한 단순화된 구현 도입 - 기존 Proxmox vnc_lite.html과 동일한 방식으로 재구현 - 복잡한 Canvas 조작 로직 제거하고 noVNC 자체 렌더링에 의존 - 로컬 noVNC 라이브러리 사용으로 버전 호환성 보장 - VNC 연결, 인증, 화면 표시 모든 기능 정상 작동 확인 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -533,6 +533,10 @@ def create_app(config_name=None):
|
||||
if not client.login():
|
||||
return jsonify({'error': 'Proxmox 서버 로그인 실패'}), 500
|
||||
|
||||
# VM 상태 확인
|
||||
vm_status = client.get_vm_status(node, vmid)
|
||||
print(f"🔍 VM {vmid} 상태: {vm_status}")
|
||||
|
||||
# VNC 티켓 생성
|
||||
vnc_data = client.get_vnc_ticket(node, vmid)
|
||||
if not vnc_data:
|
||||
@@ -548,6 +552,7 @@ def create_app(config_name=None):
|
||||
'vm_name': vm_name,
|
||||
'websocket_url': vnc_data['websocket_url'],
|
||||
'password': vnc_data.get('password', ''), # VNC 패스워드 추가
|
||||
'vm_status': vm_status.get('status', 'unknown'), # VM 상태 추가
|
||||
'created_at': datetime.now()
|
||||
}
|
||||
|
||||
@@ -572,13 +577,14 @@ def create_app(config_name=None):
|
||||
|
||||
session_data = vnc_sessions[session_id]
|
||||
|
||||
# 직접 WebSocket VNC 연결 (noVNC)
|
||||
return render_template('vnc_console.html',
|
||||
# 직접 WebSocket VNC 연결 (noVNC) - 간단한 버전으로 테스트
|
||||
return render_template('vnc_simple.html',
|
||||
vm_name=session_data['vm_name'],
|
||||
vmid=session_data['vmid'],
|
||||
node=session_data['node'],
|
||||
websocket_url=session_data['websocket_url'],
|
||||
password=session_data.get('password', ''))
|
||||
password=session_data.get('password', ''),
|
||||
vm_status=session_data.get('vm_status', 'unknown'))
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ VNC 콘솔 오류: {e}")
|
||||
|
||||
Reference in New Issue
Block a user