Zhivko Kabaivanov Ответов: 3

Как настольное приложение может получать HTTP-запросы?


Мне интересно, как я могу заставить настольное приложение, работающее на Windows, получать HTTP-запросы от WebApp?

Это и есть желаемый рабочий процесс:
Веб-приложения -и GT; приложение -&ГТ; обработка данных

Вопрос в следующем: как WebApp может отправить запрос в настольное приложение?

Что я уже пробовал:

Одна из идей, которые у меня есть, - это установить и запустить сервер Apache на ПК с Windows.
После установки сервера веб-приложение будет отправлять запросы на этот конкретный компьютер.
Использование PHP для управления запросами и пересылки запроса в настольное приложение.

3 Ответов

Рейтинг:
2

F-ES Sitecore

Попробуйте что-нибудь вроде HttpListener

Класс HttpListener (System.Net) | Microsoft Docs[^]

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

http://yourip:8001/


Рейтинг:
1

RickZeeland

Вы также можете использовать приложение SignalR (self hosted), см.: Учебник: Помощью SignalR Самостоятельно Разместить | Майкрософт Документы[^]


Рейтинг:
0

MadMyche

Способ, которым я бы это реализовал, состоит в том, чтобы разбить это на несколько модулей, не слишком далеких от вашей идеи использования Apache.

Служба(ы).
Вам понадобится веб-служба для приема HTTP-запросов.

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

Настольное Приложение. Это будет только внешний интерфейс, и он будет связываться со Службой, когда что-то нужно будет сделать.
Если вы используете только веб-службу, настольное приложение должно будет взаимодействовать через HTTP

поток данных
Если вы используете метод обслуживания 2 (Windows &Web), то вы мог есть 2 пути
Локальное приложение <==> служба Windows
Удаленный клиент <==> Веб-служба <==> служба Windows

Если вы используете только веб-сервис, то у вас будет только один путь:
Клиент (локальное приложение или удаленный) <==> Веб-сервис


Лично я бы сначала поработал с локальной стороной; разбил обработку данных и поместил ее в службу Windows, а также создал интерфейс для обмена данными между интерфейсом и обработкой данных.
Когда вы делаете веб-службу, вы можете затем включить половину коммуникационной части рабочего стола, чтобы "перевести" веб-запросы в вызовы службы

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