Реализация службы HTTP в мобильном приложении - PullRequest
0 голосов
/ 28 сентября 2018

Я работаю над мобильным приложением для iOS / Android / windows и ищу способ реализации службы HTTP в этом приложении.

Основные вопросы рабочего процесса:

  • Служба HTTP будет использоваться в веб-просмотре в том же приложении.
  • Веб-просмотр будет загружать ресурсы с назначенного веб-сайта, а также загружать дополнительные ресурсы из локальной службы HTTP.
  • Если возможно, веб-просмотр сможет загрузить дополнительные ресурсы из нелокальной службы HTTP, то есть службы, которая находится на другом телефоне, возможно, на другом NAT.Таким образом, служба HTTP должна быть в состоянии выполнить NAT-обход.

Я новичок в нативной разработке приложений, поэтому я не уверен в своих предположениях и осуществимости моих целей.В частности, на ум приходят следующие общие вопросы:

  1. Можно ли вообще запустить такой веб-сервис в фоновом режиме, который не будет автоматически останавливаться (например, в iOS) после выхода из приложения?
  2. Возможно ли сделать это в Xamarin, или я должен приложить свои усилия к разработке индивидуальных решений для каждой платформы независимо.
  3. Как насчет песочницы?Чего следует ожидать с точки зрения ограничений, накладываемых каждой платформой?

Несколько замечаний о шифровании.Если, скажем, веб-просмотр обращается к веб-сайту с использованием HTTPS, и я хочу, чтобы он также загружал ресурсы из локального веб-сервиса

  • Должен ли локальный веб-сервис обслуживать ресурсы по HTTPS?в противном случае у меня будет страница со смешанным содержимым, которая будет заблокирована различными браузерами, если не будет работать с использованием обратной связи 127.0.0.1 (т.е. при попытке доступа к этой службе с других устройств ..)?
  • И в любом случае это будетзаблокирован iOS даже с обратной связью?
  • Так что HTTPS в основном необходим для моего использования?Если это действительно необходимо, могу ли я использовать самозаверяющий сертификат для каждого клиента и, возможно, каким-то образом настроить веб-просмотр для принятия самозаверяющих сертификатов или мне нужен доверенный сертификат?
  • Если мне нужен доверенный сертификат, могу ли яЯ использую такой сервис, как letsencrypt, чтобы выдавать сертификаты своим клиентам?даже если клиенты просто простые приложения и у них нет зарегистрированных доменных имен и т. д.?

Что я сделал до сих пор:

  • Я проверил это библиотека, но кажется они не поддерживают HTTPS
  • Я проверил библиотеку EmbedIO , но кажется они не поддерживают HTTPS
  • Я подумал, что мог бы использовать WebApi с OWIN и ядром ASP.NET, но, насколько я понимаю, это не совместимо с iOS
  • Я пытался использовать .Net HttpListener.Насколько я понимаю, он должен поддерживаться на всех соответствующих платформах в стандарте .Net 2. Я использовал пример из здесь для встраивания слушателя в приложение форм xamarin, но не смог заставить его работать(пробовал как на droid, так и на UWP, я настроил соответствующие разрешения, но по какой-то причине мне не удалось получить никаких соединений).Если я встраиваю тот же код в стандартное консольное приложение, оно работает.
    • Если это работает, и я просто что-то делаю неправильно, или есть какие-то ограничения, которые я упустил из виду
    • Если такой подход должен работать, будет ли возможна поддержка HTTPS и NAT traversalа также?
  • Я обнаружил эту предварительно выпущенную библиотеку, но еще не пробовал экспериментировать с ней, интересовался, можно ли ее использовать для установки сертификата для каждого клиента ииспользуйте его в HttpListener.
  • Я нашел эту библиотеку для обхода Nat, но еще не пробовал экспериментировать с ней.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...