Что такое XMPP, и как я могу использовать его в приложении чата iOS?

Я хочу создать клиентское приложение для чата для iPhone. Я читал, что инфраструктура XMPP является одной из лучших для этого. Тем не менее, я не нашел здесь много материала, только XMPPFramework в Google Code и подробности об этом на вики.

Может кто-нибудь объяснить, что такое XMPP и как мы можем использовать его в нашем чат-приложении? Существуют ли какие-либо учебники или фрагменты кода, демонстрирующие его использование?

Ответ 1

XMPP - это открытый протокол обмена сообщениями и присутствия, поддерживаемый большинством IM-клиентов.

Если вы создаете приложение чата для iOS, которое должно взаимодействовать с другими клиентами, используйте XMPP. Сначала прочитайте и поймите протокол, а затем посмотрите на библиотеку XMPPFramework Objective-C, и все должно иметь смысл. Это займет некоторое время, чтобы узнать, хотя.

Если вашему чат-приложению нужно общаться только с другими установками вашего приложения, у вас есть несколько простых вариантов:

Вы можете открыть постоянное соединение tcp с сервером и использовать его для передачи данных присутствия и сообщений взад и вперед. Вы можете реализовать простой сервер для этого в node.js, например, в относительно небольшом количестве кода.

Еще проще: вызывать простой http-апию, когда вы хотите сообщать о новых сообщениях или изменениях присутствия из iphone и доставлять обновления через push-сообщения. Push-сообщения хороши, потому что, когда приложение закрыто, вы все равно можете доставить сообщение, и когда приложение открыто, вы сможете разумно обновить интерфейс вашего приложения.

Все о ваших требованиях.

Ответ 2

V. Вы реализовали XMPP?
Я знаю, что слишком поздно отвечать, но, как сейчас, я работаю над XMPP iOS-приложением, и теперь у нас имеется сравнительно большая информация по XMPP, я чувствую, что здесь пишу.

Вот один из лучших учебных пособий для интеграции XMPP:

1. Создание jabber-клиента для iOS
2. XMPP Messanger для iOS - GitHub

Это очень мощный и действительно мгновенный протокол для использования в IM (так как все мы знаем, что использует Hoe WhatsApp).

Мы даже можем интегрировать OMEMO Encryption для нашего IM-приложения.

Ответ 3

Наиболее известной инфраструктурой iOS XMPP является XMPPFramework. Он обеспечивает базовую реализацию RFC-3920 (стандарт XMPP). Рамка является массивной параллельной и потокобезопасной. Благодаря GCD производительность хорошая. Он поставляется с многочисленными популярными расширениями (XEP).

Вы можете найти очень хорошо написанный учебник Swift для реализации XMPPFramework в вашем приложении. Вот первая часть и вторая часть

Альтернативой может быть:

  • DCXMPP, но он не поддерживается с 2014 года.
  • Libstrophe, который является библиотекой C. Вы можете найти версию iOS здесь. То же самое не было сохранено с 2013 года.