Использование webexpress и pug / jade для отображения страницы в программе просмотра Autodesk Forge. - PullRequest
0 голосов
/ 03 января 2019

Я программирую сервер node.js webexpress, который использует pug (jade) для создания веб-сайта для просмотра (ревизии) файлов, загруженных в autodesk forge.

Веб-сервер использует axios для связи с Forge и позволяет войти в систему, создать и открыть корзину, загрузить файлы и получить URN для проектов, которые были загружены в корзину.

Когда дело доходит до настройки программы просмотра, у меня есть примеры, в которых viewerapp настраивается локально в браузере. Однако я использую pug для создания страниц, и это, похоже, не позволяет поддерживать страницу с программой просмотра в браузере и только обновлять ее. В противном случае при каждом щелчке мышью в окне браузера будет создан новый просмотрщик, который кажется медленным и лишним.

Библиотека сокетов, по-видимому, обеспечивает двустороннюю связь между веб-сервером и браузером, но это совершенно новая библиотека, которую я бы не стал включать, если не нужно.

Таким образом, первый вопрос заключается в том, можно ли даже использовать node.js webexpress и pug для динамического создания веб-страницы с приложением Viewer для просмотра подделки и кнопками, позволяющими изменять представления без повторной отправки всей страницы, включая настройку средства просмотра. еще раз.

И если так, есть ли более простой способ сделать это, чем полагаться на библиотеку сокетов?

Конечно, я могу поместить всю логику средства просмотра в файл javascript, который загружается вместе со страницей, но я бы не стал этого делать, если в этом нет необходимости, так как это могло бы раскрыть слишком много javascript и соединения для подделки до конца. пользователь. Я бы предпочел, чтобы вместо этого он хранился на веб-сервере.

Я посмотрел на https://learnforge.autodesk.io/#/viewer/2legged/nodejs и другой пример кода, но, похоже, это не отвечает на мой вопрос в том, что средство просмотра создается и поддерживается в браузере, а не на веб-сервере node.js.

1 Ответ

0 голосов
/ 03 января 2019

So the first question is if it is even possible to use node.js webexpress and pug to dynamically create a webpage with the forge viewer in it, and buttons that allow for changing views without resending the entire page including setting up the viewer again.

Точно.Зритель может быть динамически загружен и выгружен с родным JavaScript.Смотрите подробности здесь и образец кода здесь .То же самое можно сказать и о моделях - см. Статью здесь и пример здесь .

Одна из ловушек, которых вы хотели бы избежать, - это никогда не скрывать / отсоединять холст без выгрузкиЗритель первый.На момент написания Viewer пока не поддерживает рендеринг на холст нулевого размера.

And if so, is there a simpler way to do so than relying on the socket library?

К сожалению, Viewer пока не поддерживает рендеринг на стороне сервера, поэтому мы неизбалован другими вариантами, кроме Websocket.И ваше беспокойство совершенно законно, посмотрите отличное обсуждение здесь и здесь по безопасности WebGL.Нет другого механизма визуализации, доступного для Viewer, и он должен поддерживаться, если только некоторые другие технологии следующего поколения не будут иметь приоритет над WebGL (хотя не ожидаем, что это произойдет в обозримом будущем) или если определенная библиотека WebAssembly будет иметь приоритет над прямым вызовом WebGL, чтоследует в определенной степени позаботиться о запутывании кода.

Однако ничто не должно помешать вам защитить ваш код с помощью надлежащего AAA (Viewer поддерживает API-прокси и это должно еще больше укрепить ваши меры безопасности), а также эти распространенные методы запутывания для защиты вашего кода от злоупотреблений.

...