События из локального приложения MS Office в браузер - PullRequest
1 голос
/ 22 января 2020

У нас есть решение для управления контентом, и мы размещаем файлы.

Наша серверная сторона действует как сервер MS WEBDAV.

Наше браузерное приложение на основе сценариев java показывает файлы, хранящиеся на наших серверах.

Каждый раз, когда пользователь нажимает на документ в нашем браузерном приложении, мы формируем URI MS Office и Local MS офисная установка открывается. После этого происходит обмен данными между локальным офисным приложением и нашим сервером.

Теперь я хочу поделиться некоторой информацией / состоянием между локальным офисным приложением и браузером на стороне клиента, который фактически помог открыть файл.

Можно ли на стороне браузера прослушивать некоторые события, сгенерированные офисным приложением, например, при сохранении?

Office генерирует события при сохранении, но они остаются в сфере продуктов Office. Как распространить это событие на работающее приложение браузера?

Я, вероятно, могу разработать надстройку VSTO, перехватить событие, перенести событие в шину сообщений и позволить моему приложению браузера прослушивать эту шину сообщений, но это кажется довольно сложный.

Также у меня нет возможности отправлять какие-либо уведомления со стороны моего сервера на сторону клиента.

С наилучшими пожеланиями,

Саурав

1 Ответ

0 голосов
/ 29 января 2020

Лучше всего создать надстройку VSTO, которая напрямую взаимодействует со службой на стороне сервера.

У вас есть несколько вариантов, как это реализовать. Я бы попытался создать мост WebSocket, который перенаправляет сообщения между надстройкой VSTO и кодом на стороне клиента вашего веб-приложения. Я хотел бы начать с использования чего-то вроде websockify .

В качестве альтернативы, вы можете создать простой веб-сервис HTTP, который может вызываться обеими сторонами, а затем провести опрос кода javascript для периодически обновляет.

Или вы могли бы даже go для сочетания этих двух вариантов, когда надстройка VSTO использует стандартный вызов службы HTTP, а ваш javascript использует WebSockets для получения обновлений от той же службы ,

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

Это довольно просто ... Вам просто нужно выяснить, как вы собираетесь хранить ссылку на документ, чтобы обе стороны могли обратитесь к нему, безошибочно. Я хотел бы рассмотреть возможность использования свойства файла или свойства метаданных документа.

...