Приложения Windows Store (WInRT) выполняются в изолированной среде, которая изолирует их от сетевой связи с другими приложениями на локальном компьютере (localhost
). При этом эта защита может быть отключена с помощью CheckNetIsolation.exe
. Visual Studio автоматически делает то же самое для целей отладки, что позволяет вам звонить, например. веб-службы на вашей локальной машине во время разработки.
Что касается рабочего стола; для связи с клиентом веб-сокетов, вы можете воспользоваться WinHTTP. На рабочем столе есть рабочий пример: MSDN.
Имейте в виду, однако, что любое приложение, общение с localhost
не будет сертифицирован для Windows Store и потребуется несколько дополнительных шагов для его установки:
- Пакет приложений Windows Store необходимо будет загружен на так он не будет опубликован в Windows Store.
- Любой компонент рабочего стола, с которым он общается, должен быть установлен отдельно так же, как и любое другое настольное приложение.
- Использование приложения
CheckNetIsolation.exe
для приложения Windows Store должно быть добавлено исключение loopback.
Если вы можете этого избежать, я определенно предлагаю вам не пытаться напрямую общаться с настольным приложением из приложения Windows Store.
Большое спасибо. Да, я просмотрел образец, который вы упомянули. Я хочу написать сервер веб-сервера Winhttp вместо клиента. Не могли бы вы помочь мне в этом? – minu
@minu В вышеприведенном примере также присутствует серверный компонент, но он реализован как «IHttpHandler» и размещен в IIS. Если вам нужно самоорганизованное решение, посмотрите на стороннюю библиотеку, например [Alchemy Websockets] (http://alchemywebsockets.net/). –
Еще раз спасибо за указания. Я хотел создать его на C++ специально для websockets. Я видел, что есть API для Winhttp-клиента, но не смог найти его для сервера. – minu