Разъем для подключения к iPhone (IOS 4.x) - PullRequest
1 голос
/ 05 января 2011

Я работаю над приложением чата (необходимо подключиться к серверу) на iPhone.Отправка пакета с iPhone не должна быть проблемой.

Но я хотел бы знать, возможно ли для iPhone устанавливать соединение с сервером через входящее гнездо непрерывно или навсегда в мобильной среде.

ИЛИ Что мне нужно сделать, чтобы установить соединениев живых ?Нужно отправить что-то поверх этого, чтобы сохранить его?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 29 мая 2011

Супер устаревший ответ, но, возможно, он поможет следующему человеку.

Я бы использовал xmppframework и сервер jabber.

2 голосов
/ 05 января 2011

Не уверен, почему вы хотите, чтобы приложение для чата имело постоянное соединение ... Я бы лучше использовал модель, похожую на SMS.В любом случае, Cocoa NSStream основан на NSSocket и предоставляет множество функциональных возможностей.Взгляните на это.

Ответ на вопрос.Вот вкратце, что бы я сделал:

  1. Получите токен аутентификации с сервера.
    • это также позаботится о присутствии пользователя в случае необходимости, но теперь мы говорим о состоянии;когда присутствие известно, сервер может отправлять уведомления клиентам, которые активны и у которых есть пользователь в списке контактов.
  2. Получение списка контактов пользователя и состояния присутствия контакта.
  3. Когда сообщение отправлено, обработайте его в соответствии с состоянием адресата, т. Е. В режиме онлайн, отправьте сообщение другому пользователю, в автономном режиме, поставьте в очередь для последующей доставки или отклоните.
  4. По истечении срока действия токена, отклоните сообщение с соответствующей ошибкойи заставьте клиента запрашивать новый токен.

Связь между сервером и клиентом может основываться на модели «подталкивание» или «выталкивание».В первом случае клиент периодически делает запрос и выбирает все сообщения.Это может звучать не очень хорошо, но на самом деле, как часто пользователи сочиняют и отправляют сообщения?Несколько раз в минуту?Это не так уж много.Таким образом, выборка может происходить каждые 5-10 секунд.

Для push-модели клиент должен иметь возможность прослушивать и принимать соединения.

Наконец, проверьте SIP, протокол инициации сеанса.Не нужно использовать полную версию, хотя.Просто базовые вещи.

Это очень грубо и, возможно, упрощено.Я не знаю целевой сложности вашей системы чата.Например, самой простой вещью может быть также то, что сервер просто позволяет клиенту общаться с клиентом, распределяя их конечные точки, и клиенты сами обо всем позаботятся.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...