Versions in this module Expand all Collapse all v1 v1.0.19 Feb 22, 2026 v1.0.18 Feb 15, 2026 v1.0.17 Feb 1, 2026 v1.0.16 Jan 2, 2026 v1.0.15 Dec 22, 2025 v1.0.14 Dec 7, 2025 Changes in this version type Service + func (s *Service) ConnectToNodeEmbeddedWithClient(client *api.Client, nodeName string) (string, error) + func (s *Service) ConnectToVMEmbeddedWithClient(client *api.Client, vm *api.VM) (string, error) + func (s *Service) GetNodeVNCStatusWithClient(client *api.Client, nodeName string) (bool, string) type SessionManager + func (sm *SessionManager) CreateNodeSessionWithClient(client *api.Client, nodeName string) (*VNCSession, error) + func (sm *SessionManager) CreateSessionWithClient(ctx context.Context, client *api.Client, sessionType SessionType, ...) (*VNCSession, error) + func (sm *SessionManager) CreateVMSessionWithClient(client *api.Client, vm *api.VM) (*VNCSession, error) v1.0.13 Nov 29, 2025 v1.0.12 Nov 25, 2025 v1.0.11 Nov 21, 2025 v1.0.10 Nov 14, 2025 v1.0.9 Nov 12, 2025 v1.0.8 Nov 5, 2025 v1.0.7 Oct 22, 2025 v1.0.6 Sep 13, 2025 v1.0.5 Aug 25, 2025 Changes in this version + type ProxyConfig struct + AuthToken string + NodeName string + Password string + Port string + ProxmoxHost string + Ticket string + Timeout time.Duration + VMID int + VMType string + func CreateNodeProxyConfig(client *api.Client, nodeName string) (*ProxyConfig, error) + func CreateNodeProxyConfigWithLogger(client *api.Client, nodeName string, sharedLogger *logger.Logger) (*ProxyConfig, error) + func CreateVMProxyConfig(client *api.Client, vm *api.VM) (*ProxyConfig, error) + func CreateVMProxyConfigWithLogger(client *api.Client, vm *api.VM, sharedLogger *logger.Logger) (*ProxyConfig, error) + type Server struct + func NewServer() *Server + func NewServerWithLogger(sharedLogger *logger.Logger) *Server + func (s *Server) GetPort() int + func (s *Server) IsRunning() bool + func (s *Server) StartNodeVNCServer(client *api.Client, nodeName string) (string, error) + func (s *Server) StartNodeVNCServerWithSession(client *api.Client, nodeName string, session SessionNotifier) (string, error) + func (s *Server) StartVMVNCServer(client *api.Client, vm *api.VM) (string, error) + func (s *Server) StartVMVNCServerWithSession(client *api.Client, vm *api.VM, session SessionNotifier) (string, error) + func (s *Server) Stop() error + type Service struct + func NewService(client *api.Client) *Service + func NewServiceWithLogger(client *api.Client, sharedLogger *logger.Logger) *Service + func (s *Service) CleanupInactiveSessions(maxAge time.Duration) + func (s *Service) CloseAllSessions() error + func (s *Service) CloseSession(sessionID string) error + func (s *Service) ConnectToNode(nodeName string) error + func (s *Service) ConnectToNodeEmbedded(nodeName string) (string, error) + func (s *Service) ConnectToVM(vm *api.VM) error + func (s *Service) ConnectToVMEmbedded(vm *api.VM) (string, error) + func (s *Service) GetActiveSessionCount() int + func (s *Service) GetEmbeddedServerPort() int + func (s *Service) GetNodeVNCStatus(nodeName string) (bool, string) + func (s *Service) GetSessionByTarget(sessionType SessionType, target string) (*VNCSession, bool) + func (s *Service) GetVMVNCStatus(vm *api.VM) (bool, string) + func (s *Service) IsEmbeddedServerRunning() bool + func (s *Service) ListActiveSessions() []*VNCSession + func (s *Service) SetSessionCountCallback(callback func(int)) + func (s *Service) StopEmbeddedServer() error + func (s *Service) UpdateClient(client *api.Client) + type SessionCountCallback func(count int) + type SessionManager struct + func NewSessionManager(client *api.Client) *SessionManager + func NewSessionManagerWithLogger(client *api.Client, sharedLogger *logger.Logger) *SessionManager + func (sm *SessionManager) CleanupInactiveSessions(maxAge time.Duration) + func (sm *SessionManager) CloseAllSessions() error + func (sm *SessionManager) CloseSession(sessionID string) error + func (sm *SessionManager) CreateNodeSession(nodeName string) (*VNCSession, error) + func (sm *SessionManager) CreateSession(ctx context.Context, sessionType SessionType, ...) (*VNCSession, error) + func (sm *SessionManager) CreateVMSession(vm *api.VM) (*VNCSession, error) + func (sm *SessionManager) GetSessionByTarget(sessionType SessionType, target string) (*VNCSession, bool) + func (sm *SessionManager) GetSessionCount() int + func (sm *SessionManager) ListSessions() []*VNCSession + func (sm *SessionManager) SetSessionCountCallback(callback SessionCountCallback) + func (sm *SessionManager) Shutdown() error + func (sm *SessionManager) UpdateClient(client *api.Client) + type SessionNotifier interface + OnClientConnected func() + OnClientDisconnected func() + UpdateLastUsed func() + type SessionState int + const SessionStateActive + const SessionStateClosed + const SessionStateConnected + const SessionStateDisconnected + type SessionType string + const SessionTypeLXC + const SessionTypeNode + const SessionTypeVM + type VNCSession struct + CreatedAt time.Time + ID string + LastUsed time.Time + NodeName string + Port int + ProxyConfig *ProxyConfig + Server *Server + State SessionState + TargetName string + TargetType SessionType + URL string + VMID string + func (s *VNCSession) GetConnectionCount() int + func (s *VNCSession) GetTargetKey() string + func (s *VNCSession) IsExpired(timeout time.Duration) bool + func (s *VNCSession) IsReusable() bool + func (s *VNCSession) OnClientConnected() + func (s *VNCSession) OnClientDisconnected() + func (s *VNCSession) Shutdown() error + func (s *VNCSession) UpdateLastUsed() + type WebSocketProxy struct + func NewWebSocketProxy(config *ProxyConfig) *WebSocketProxy + func NewWebSocketProxyWithSession(config *ProxyConfig, session SessionNotifier) *WebSocketProxy + func NewWebSocketProxyWithSessionAndLogger(config *ProxyConfig, session SessionNotifier, sharedLogger *logger.Logger) *WebSocketProxy + func (p *WebSocketProxy) HandleWebSocketProxy(w http.ResponseWriter, r *http.Request)