Хороший способ общения между веб-приложением и настольным приложением - PullRequest
4 голосов
/ 27 декабря 2011

Я хочу, чтобы мое веб-приложение (запущенное в браузере) в какой-то момент связывалось (двунаправленно) с настольным приложением (в Windows), которое клиент установил на свой компьютер.и модульный и простой способ сделать это (с Java и C #)?

Между веб-приложением и настольным приложением не будет много информации.Просто что-то вроде «Я был здесь», «Выберите это с этого момента» и т. Д.

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

Я решил эту проблему, используя базу данных в сети. Все коммуникации осуществлены через базу данных.

Веб-сайт -> БД -> Пользователь вошел в систему <- БД <- Рабочий стол </p>

Однако, если нет необходимости передавать доверенную информацию, вы можете просто разместить и прочитать некоторые заголовки http на общем веб-сайте или в простом файле журнала.

Привет

1 голос
/ 27 декабря 2011

Я вижу несколько вариантов выполнения части из того, что вы просите:

По сути, вы предоставляете доступ к соответствующим частям ваших приложений (веб и настольный компьютер) через какой-то API и используете его для связи - например,БД и / или WCF (SOAP / REST / что угодно).

ВНИМАНИЕ:

Если вам нужна какая-то прямая / интерактивная связь между обоими приложениями на одном компьютере, то это не будетвозможно - по крайней мере, без некоторых проблем, связанных с безопасностью.

Браузер запускает ваше веб-приложение в изолированной программной среде, которая не допускает прямой связи между веб-приложением и рабочим столом ... существуют технологии, которые могутпомогите обойти это (ActiveX, подписанные Java-апплеты, некоторые технологии Flash, называемые AIR и т.любые такие меры ...

Если вы действительно хотите пойти по этому пути, то, пожалуйста, опишите вашу среду и цельс гораздо большей детализацией.

1 голос
/ 27 декабря 2011

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

У вас есть два варианта:

  1. Ваши настольные приложения используютте же сервисы вашего веб-приложения.Вы должны использовать класс, который имитирует веб-браузер, чтобы выдавать данные ( curl , т.е.).Если ваше веб-приложение основано на AJAX push ( APE Server ie), используйте библиотеку, которая может запускать некоторый javascript
  2. Используйте протокол REST с форматом JSON в ваших внутренних службах.Он прост в управлении и поддерживается многими клиентскими языками (java / c # / python ....)
  3. Используйте специализированную конечную точку только для настольного приложения, для C # вы можете использовать WCF, который позволяетВы, в одной из его форм двунаправленной связи.Для JAVA существуют WSDL, DWR

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

Если мне нужно истинное двунаправленное соединение с другим настольным приложением, я создам для него отдельную службу / конечную точку.(APE, WCF, ..)

...