связь между тонким и толстым клиентом

У меня есть веб-приложение, работающее в окне браузера (тонкий клиент).

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

введите здесь описание изображения

Решение, которое я нашел, заключается в следующем:

  • thin client открыт в URL-адресе: http://xx/index.html
  • thick client открывает новое окно браузера с URL-адресом http://xx/send.html?var=val
  • новое окно браузера использует "localStorage" для отправки var=val тонкому клиенту.
  • новое окно браузера закроется.

введите здесь описание изображения

У меня есть следующие вопросы:

  • Есть ли способ закрыть временное окно в FF, как только оно выполнит свою задачу? window.open('','_parent',''); window.close(); больше не работает в последних версиях FF.
  • Есть ли способ использовать события localStorage в IE7-?
  • Есть ли другой способ сделать это? (связь между толстым клиентом и браузером).

Спасибо.


person Majid Laissi    schedule 11.12.2012    source источник
comment
Вы можете разместить легкий веб-сервис на толстом клиенте. На каком языке/фреймворке реализован толстый клиент?   -  person jevakallio    schedule 11.12.2012
comment
@fencliff это стороннее программное обеспечение. Они могут сделать некоторые настройки, но не так много.   -  person Majid Laissi    schedule 11.12.2012
comment
Кроме того, толстый клиент должен push передавать информацию в WebApp.. поэтому WS в толстом клиенте не будет достаточно легким.   -  person Majid Laissi    schedule 11.12.2012
comment
Какие методы у вас есть при открытии URL-адресов из толстого клиента? Можно ли как-то управлять открытым окном из толстого клиента? Можете ли вы взаимодействовать с окном, открытым из толстого клиента? Дополнительное примечание: +1 за реализацию службы веб-сокетов на толстом клиенте, к которому будет подключаться тонкий клиент.   -  person WTK    schedule 11.12.2012
comment
@WTK Мы могли бы попросить поставщика толстого клиента контролировать открытое окно (т. Е. Закрыть его), но как они могли узнать, что оно выполнило свою задачу? Если они закроют его после фиксированного тайм-аута, то: 1- возможно, окно еще не загружено 2- может быть, оно закончило загрузку несколько секунд назад, и пользователь бездействовал, ожидая закрытия окна   -  person Majid Laissi    schedule 11.12.2012
comment
для веб-сокета нам не нужен http-сервер на клиентской машине? и что этот http-сервер должен иметь возможность отправлять push-сообщения в веб-приложение?   -  person Majid Laissi    schedule 11.12.2012
comment
Веб-сокеты предназначены для обеспечения двусторонней связи, поэтому в вашем случае это будет нормально. Да, для этого потребуется толстый клиент для реализации сервера, к которому будет подключаться тонкий клиент. Что касается другого возможного решения (окно tmp) - если новое открытое окно устанавливает данные в локальное хранилище, то его можно сразу закрыть, не так ли? Набор данных мгновенно доступен для других окон в том же домене, независимо от того, будет он использоваться или нет, зависит от тонкого клиента.   -  person WTK    schedule 11.12.2012
comment
Я говорю только об отправителе. Некоторые клиенты используют IE на немного старых компьютерах. Я не уверен, что IE откроется и загрузится так же быстро, как на других компьютерах. Что касается решения для сокетов, может ли тонкий клиент (html, flex, ..) подключиться к сокету tcp?   -  person Majid Laissi    schedule 11.12.2012


Ответы (1)


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

Предположим, что клиент будет отправлять информацию на сервер моста, а тонкий клиент будет ждать обновления от сервера моста.

Клиенты могут одновременно взаимодействовать с несколькими серверами.

Какую информацию толстый клиент должен передать тонкому клиенту? Это простой текст или что-то более сложное?

person Arun Taylor    schedule 11.12.2012
comment
это просто текст, но проблема в том, что для установки промежуточного сервера потребуется установить другое толстое программное обеспечение (сервер tomcat или около того.. это потребует большого развертывания, поскольку есть сотни клиентов..) - person Majid Laissi; 11.12.2012
comment
Надеюсь, я использую flex, и у него есть возможность устанавливать TCP-соединения. Так что легкий Java-сервер сделает это. - person Majid Laissi; 12.12.2012