Рекомендуемая альтернатива webkit для серверных событий на iOS

Я хотел бы получать события Server-Sent в моем родном приложении iOS, но не использую webkit / Safari. Из того, что я нашел, NSURLConnection плохо подходит, так как он решает проблему. Я также посмотрел на библиотеку ZTWebSocket (очевидно, хорошо, но я ищу SSE, а не веб-сокеты). Будет ли подходящим CocoaAsyncSocket ? Или ограничено чистой связью TCP Socket?

У меня есть подозрительное подозрение, что я пропускаю что-то очевидное, или для этого уже есть библиотека или образец. Заранее спасибо.

После некоторых дополнительных исследований по этому вопросу, я считаю, что лучший способ реализовать события Server Sent для iOS без WebKit – это использовать настраиваемый набор инструментов NSConnection / NSRequest. Я поселился в ASIHTTPRequest . Эта библиотека позволяет вам явно контролировать атрибут persistence на объекте подключения (существенный), управлять данными по мере их получения по потоку, хранить ответы (например, в локальных файлах) и т. Д.

Не говоря уже о том, что в нем есть множество других удобных расширений / настроек в сфере сетевого взаимодействия (улучшенный наблюдатель Reachability, упрощенный API для асинхронизации, функция очереди, даже возможность загружать целые веб-страницы (CSS, js и все).

На стороне сервера я использую cyclone-sse (торнадо) и nginx (как обратный прокси). Довольно интересно, теперь я вижу, что мои SSE симулируются одновременно как с моим симулятором iOS, так и с подписчиком браузера. Cyclone даже обрабатывает все соединения и дает мне API, который поддерживает простой POST для push-сообщений (также поддерживает AMQP и Redit) …

Короче говоря, ASIHTTPRequest был идеальным решением для меня.

SSE – это технология HTTP в том смысле, что она связана с открытым HTTP-соединением. CocoaAsyncSocket – это сырые сокеты TCP / UDP и ничего не знают о HTTP. Так что нет, CocoaAsyncSocket не даст вам SSE, как вы подозревали.

Я не знаю никакой автономной реализации SSE (в духе автономных реализаций Websocket), что, возможно, вы ищете. Но я не знаю, будет ли это иметь смысл вообще, поскольку SSE отправляет сообщения в виде DOM-событий, которые наиболее разумны в контексте HTML, насколько я могу судить.

Если все, что вы хотите достичь, отправляет сообщения в ваше приложение iOS, и вы свободны в выборе технологии, это сделали бы сырые сокеты. Но Websockets скорее всего могут удовлетворить ваши потребности, в зависимости от того, что вы хотите. Взгляните на SocketRocket .

Попробуйте эту простую библиотеку, написанную в Swift: https://github.com/hamin/eventsource.swift

API очень прост. На данный момент он использует NSURLConnection.

  • Ошибка прокрутки Webkit
  • Ошибка теневого распространения в WebKit в iOS 7 на iPad Retina
  • Отключение выбора пользователя в UIWebView
  • Получение всех файлов cookie из WKWebView
  • Предотвращение наложения серым цветом на сенсорный экран в мобильном браузере Safari / Webview
  • Прокрутка прокрутки IOS -webkit-overflow на неправильной оси или вообще не
  • Исправленные элементы не доступны для кликов, когда я быстро прокручиваю нижнюю часть в iOS Safari 9+
  • Отключить усиление в WKWebView
  • iOS HTML Input Tag останавливает прокрутку в прокручиваемом элементе
  • Не удалось выполнить команду com.apple.WebKit.Networking: 113: Не удалось найти указанную службу
  • Как остановить MPAVItem сбой моего приложения iOS с видео в моем UIWebView?
  • Interesting Posts

    Alamofire: как обрабатывать ошибки во всем мире

    Admob для межстраничного видео iOS запускается в фоновом режиме при загрузке

    Создание PopOver без стрелок и центрирование в UIViewController

    Сбой утверждения в – ,

    Как сказать MPNowPlayingInfoCenter, или нет, музыка играет или приостанавливается?

    В чем разница между различными типами заполнения в iOS?

    Как изменить положение значка UITabBarItem?

    Работа с неполными данными с помощью NSURLSessionDataTask

    SKPaymentQueue restoreCompletedTransactions восстанавливает одну и ту же транзакцию несколько раз

    Есть ли способ запросить кэш приложений HTML5?

    Ошибка при реализации второго UICollectionView: не удалось удалить вид вида: UICollectionElementKindCell с идентификатором xxxx – должен регистрироваться

    setPopoverContentSize не работает

    Пытаться разобрать массив json, возвращенный успокаивающим веб-APS для проекта iOS

    Как реализовать протокол, который имеет то же имя, что и другой класс

    Скрыть заголовок от UINavigationBar?

    Давайте будем гением компьютера.