Нет ошибки с билетом, даже с билетом в api2/json/nodes/pve/qemu/100/vncwebsocket, Proxmox Виртуальная Среда
PedroPastore
Guest
0
01.03.2023 19:32:00
Я пытаюсь внедрить приложение noVNC на свой сайт, чтобы люди могли подключаться к виртуальной машине Proxmox, но у меня возникают трудности с подключением через конечную точку api2/json/nodes/pve/qemu/100/vncwebsocket. Я пробовал использовать следующий URL в странице noVNC, чтобы подключиться к Proxmox . Я увидел в одном посте, что билет должен быть URLEncoded, поэтому я сделал это, но всё равно не могу подключиться к Proxmox, продолжает появляться ошибка, что нет билета, как показано на этом скриншоте: . Я пробовал не использовать URLEncoding, но проблема осталась той же.
dcsapak
Guest
0
16.03.2023 08:06:00
Мне очень жаль, что у вас возникли проблемы с этим, но без дополнительной информации и/или без понимания того, что именно вы делаете на стороне novnc, я не могу вам особо помочь. Вы можете попробовать использовать наш код novnc и немного его подкорректировать, чтобы все заработало?
PedroPastore
Guest
0
16.03.2023 15:02:00
Что касается части noVNC, я склонировал git-репозиторий по этой ссылке: , а затем создал небольшой сервер, который возвращает страницу vnc.html. Единственное, что я изменил в коде, это следующая часть в файле ui.js: JavaScript: // начало моего кода fetch(window.location.pathname + "/getVNCInfo", { method: "GET", }) .then((result) => result.json()) .then((result) => { UI.forceSetting('path', 'api2/json/nodes/pve/qemu/100/vncwebsocket' + "?" + result.encodedParams); console.log(result) }) .catch((err) => { console.log(err) }) // конец моего кода
UI.initSetting('host', window.location.hostname); UI.initSetting('port', port); UI.initSetting('encrypt', (window.location.protocol === "https:")); UI.initSetting('view_clip', false); UI.initSetting('resize', 'off'); UI.initSetting('quality', 6); UI.initSetting('compression', 2); UI.initSetting('shared', true); UI.initSetting('view_only', false); UI.initSetting('show_dot', false); // UI.initSetting('path', mypath); закомментировал эту строку, потому что задаю путь в коде выше UI.initSetting('repeaterID', ''); UI.initSetting('reconnect', false); UI.initSetting('reconnect_delay', 5000);
UI.setupSettingLabels(); Я использую fetch, чтобы получить нужную информацию, остальной код идет из репозитория noVNC. Я знаю, что часть с fetch асинхронная, поэтому для этого теста я всегда жду, когда console.log(result) появится в консоли браузера, прежде чем пытаться подключиться. Я бы изменил много вещей, прежде чем использовать это на своем сайте, но сейчас хочу, чтобы это сработало один раз, прежде чем автоматизировать процесс для нескольких клиентов. Что касается использования вашего кода noVNC, где я могу его получить? Я знаю, вы отправили ссылку на , где есть VNC код, но я не уверен, как я могу клонировать репозиторий, чтобы увидеть файлы. Я только могу видеть определенные коммиты по этой ссылке.
dcsapak
Guest
0
16.03.2023 15:09:00
Репозиторий находится по адресу: и имеет несколько ссылок вверху: например, 'fast: git://git.proxmox.com/git/novnc-pve.git'. Вы можете проверить это с помощью git следующим образом: Код: git clone git://git.proxmox.com/git/novnc-pve.git
PedroPastore
Guest
0
16.03.2023 16:18:00
Извини за недостаток знаний, но после того как я это склонировал, папка novnc пустая. Я пытался сменить ветки, например, перейти на ветку stable-4, но тогда папка novnc удаляется. Я в замешательстве, как я должен получить код.
dcsapak
Guest
0
17.03.2023 08:46:00
ах, да, код novnc находится только в подмодуле, его можно получить с помощью: Code: git submodule update --init --recursive, чтобы увидеть фактический код, который мы запускаем, вам нужно применить патчи из папки debian/patches (это связано с упаковкой для debian), например, с помощью 'git am'