Я работаю над созданием приложения для iOS, которое делает несколько вещей, некоторые из которых выиграют от потоков данных в реальном времени (например, чата)
На данный момент у меня есть несколько обработчиков на моем сервереодин из них получает все потоки, к которым имеет доступ пользователь, другой может получать сообщения (смещение, все, временные и т. д.) для потока.Когда пользователь отправляет сообщение в поток, я получаю всех слушателей для потока и отправляю им push-уведомления.Это работает, но я читал документы APNS, и там написано: «не делайте больше 3 / час», и я определенно делаю больше 3 / час.
Так что я думаю, что я перехожу к веб-сокетам.Я знаю, как синхронизировать пабы / подписчики на разных компьютерах через Redis, поэтому я не беспокоюсь об этом, я больше застрял в следующем:
Если я начну вводить веб-сокеты в проект, я должен просто накачатьвся информация приложения <-> Сервер через веб-сокет?Создать поток -> Не отправлять сообщения, просто отправить сообщение по сокету.Получить сообщение -> Не опрашивать или отправлять уведомления, просто отправьте сообщение по сокету.Буквально все, что угодно -> Не делайте запрос, просто отправьте сообщение по сокету.
Сейчас я склоняюсь к загрузке исходного состояния и объемных данных через обычные URL-адреса HTTP (например: создание потока, загрузкапоследние 20 сообщений для потока XYZ), но для данных, которые должны быть отправлены и получены в режиме реального времени (например, отправка / запись сообщения чата), сделайте это через веб-сокет.