Удаленный запуск настольного приложения с веб-сайта - PullRequest
2 голосов
/ 23 ноября 2011

Я ищу создание (скорее всего, php) веб-сервера, где пользователь может войти в систему и отправлять сообщения через Интернет в приложение C #, которое работает на панели задач пользователя на его домашнем ПК, и отображать сообщение.

LogMeIn и Dropbox, по-видимому, оба «проталкивают» данные на ПК пользователя без какой-либо необходимой информации (без статического IP-адреса для настольного компьютера), поэтому это должно быть возможно, но я не уверен, как.

Любая помощь будет принята с благодарностью, спасибо!

Ответы [ 4 ]

2 голосов
/ 23 ноября 2011

После запуска, например, LogMeIn, он откроет порт и отправит свой IP на сервер LogMeIn.Он будет делать каждые X минут / часов.Если у сервера LogMeIn есть запрос для вашего клиента, он отправит запрос на ваш IP-адрес на конкретный порт.все время с клиентского ПК отправляйте пакет на сервер, если на сервере что-то есть, возвращайте специальный пакет.В противном случае просто ответ сервер получил его.

1 голос
/ 24 ноября 2011
  1. Клиентское приложение обновляет централизованную базу данных своим IP-адресом при включении.Наилучшим подходом может быть обновление значения на ловушке всякий раз, когда клиентское приложение получает подключение к Интернету (например, когда IP-адрес изменится).
  2. Клиентское приложение предоставляет конечную точку службы (WCF / SOAP будет легко), который выполняет некоторую работу (например, отображение окна сообщения)
  3. Ваш сервер отправляет сообщения SOAP клиентскому приложению.SOAP - это, по сути, XML, поэтому вы могли бы сделать так, чтобы PHP делал это довольно легко.

Как вы осуществляете взаимодействие клиент / сервер, зависит только от вас.WCF / SOAP - это всего лишь один из подходов, но он чрезвычайно прост.Вы, вероятно, захотите использовать какую-то инфраструктуру оконечной точки обслуживания, чтобы избежать написания всей сантехники самостоятельно (не нужно заново изобретать колесо).Службы WCF также можно запускать без установленного IIS.

1 голос
/ 23 ноября 2011

Я бы сделал так, чтобы настольное приложение C # действовало как сервер и прослушивало сокетные соединения.Затем приложение PHP может подключаться по запросам, отправлять необходимые данные и затем закрывать соединение.

Единственный способ подключения к другому компьютеру - использовать какой-либо адрес.Эти службы, вероятно, имеют центральную базу данных текущих IP-адресов пользователей.В вашем случае ваше приложение C # будет знать «имя пользователя» компьютера, на котором он включен, и каждый раз, когда оно запускается, оно может обновлять поле в базе данных с помощью текущего внешнего IP-адреса.Затем сценарий PHP может извлечь это для подключения.

0 голосов
/ 25 февраля 2012

как далеко вы продвинулись с этим. Я пытался сделать то же самое.

Моя идея состояла в том, чтобы у меня было приложение C # App \ Service, которое будет непрерывно снимать скриншоты моего рабочего стола и продолжать отправлять их на веб-сервер, который у меня есть. Там на веб-сервере после авторизации при входе в систему, веб войдите не на рабочий стол, я покажу потоковый рабочий стол на веб-странице и продолжу посылать местоположение мыши, щелчки и щелчки правой кнопкой мыши на базу данных, которая снова будет постоянно отслеживать мое приложение C # App \ Service, и будет интерпретировать эти движения и щелчки мыши и ИГРАЙТЕ ИХ ИСПОЛНИТЕ их на моем настольном ПК, используя ВХОДНОЙ КРЮК или что-то в этом роде,

Затем я могу открыть свою веб-страницу из любой точки мира, и у меня будет ДИСТАНЦИОННОЕ ПОДКЛЮЧЕНИЕ К ВЕБ-БАЗЕ.

пока я дошел до http://moon.pk/sad/

Я отправляю снятые снимки экрана в БД MySQL моего веб-сервера, для передачи которого требуется более одной минуты, поэтому частота кадров будет составлять 0,75 кадров в секунду. что далеко за пределами ПЛОХО.

...