Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Взаимодействие JS с внешним миром


Автор: FF90h 5.4.2011, 19:24
 Доброго дня уважаемые специалисты, встала необходимость взаимодействия Web приложения (на JavaScript, далее просто js) с desktop приложением, работающим у клиента. Решения видятся такие:

1. Веб-сервер на стороне desktop приложения, тогда JS приложение будет цеплять данные ajax'om
2. Промежуточный веб-сервер куда desktop приложение будет передавать данные, а JS получать.
3. В ОС Windows и IE использовать файлы через JScript либо буфер обмена.
4. Расширение под браузер для их взаимодействия.
5. Silverlight & Flash, Java

Вопрос в том есть ли еще какие варианты для подобного взаимодействия,  стандарты и пр. ?   smile 

Автор: ksnk 5.4.2011, 19:30
Цитата(FF90h @  5.4.2011,  19:24 Найти цитируемый пост)
взаимодействия Web приложения (на JavaScript, далее просто js) с desktop приложением

Где работает desktop приложение и где работает Web приложение?
на клиентской машине и броузере на той-же клиентской машине, соответственно? 

Автор: FF90h 5.4.2011, 19:32
ksnk, так точно, платформа Windows  smile 

Автор: ksnk 5.4.2011, 19:40
Вообще-то в таком случае достаточно эмулировать web-сервер в приложении. Для примера - панельки управления для uTorrent. Что за контент будет отдаваться таким сервером - полностью контролируется приложением.

Автор: FF90h 5.4.2011, 19:48
ksnk, это как раз и есть 1 вариант. 

Автор: ksnk 5.4.2011, 19:57
Цитата(FF90h @  5.4.2011,  19:48 Найти цитируемый пост)
ksnk, это как раз и есть 1 вариант.  

в таком случае говорить об отдельном web-приложении нет особого смысла. весь код этого приложения хранится и выдается desktop-приложением

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

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

Автор: FF90h 5.4.2011, 20:06
ksnk, Дело все в том что это веб приложение формируется на стороне другого сервера, который как раз и обеспечивает его основными данными (хранится тоже должно там), согласен 1 вариант действительно самый простой в плане реализации, думал может просто есть какие нибудь методики обмена между js и desktop приложением помимо HTTP протокола.

Автор: ksnk 5.4.2011, 20:30
Методики есть, но они неожиданно закрываются по мутным соображениям безопасности. Web-сокеты, например, одна из таких технологий. Множество разным образом закрытых кроссдоменных вариантов обмена.

Сейчас, imho, правильным будет пользоваться jsonp для обмена с "чужим" сервером. Это считается стандартом для обмена с сервисами гугла. То есть "чужой" сервер - (прилложение на этом--же компутере), сидит своим web-сервером на каком-нибудь адресе localhost:XXXX и выдает данные в json-виде. вот , собственно и вся тонкость jsonp'а...

Автор: FF90h 5.4.2011, 20:50
ksnk, к сожалению web сокеты закрыты (открыть можно, но будет ли поддержка в дальнейшем неизвестно), а в IE по моему вообще не реализованы, скорее всего буду делать именно по сценарию веб сервера от desktop приложения на localhos'е. Спасибо за советы  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)