Подключение к чату Facebook XMPP

Я создаю приложение iOS для интеграции с чатом Facebook с использованием XMPP (я использую библиотеку XMPPFramework). Он отлично работает, когда я тестирую себя с двумя iPhone, но когда я попросил своих бета-пользователей (всего около 5) протестировать его одновременно, я столкнулся с двумя проблемами с подключением:

  1. Когда мое приложение пыталось открыть соединение с chat.facebook.com, оно время от времени получало ошибку «отказ в соединении».
  2. Несмотря на то, что соединение было установлено успешно, оно разорвалось через короткий промежуток времени (менее минуты) с ошибкой «Сокет закрыт удаленным узлом».

Как я уже сказал, он отлично работает, когда я просто тестирую его на себе с двумя iPhone, поэтому все настройки разрешений должны быть правильными. Мне интересно, установил ли Facebook какой-либо одновременный лимит на количество подключений к чату для приложения или я что-то пропустил.

Любая помощь приветствуется.


person Billy Kan    schedule 12.11.2012    source источник


Ответы (1)


Поскольку вы используете XMPPFramework, это должен сделать модуль XMPPReconnect: он просто восстанавливает соединение, когда сервер прерывает его (как, кажется, делает сервер чата Facebook).

#import "XMPPReconnect.h"

// [...]

XMPPReconnect *reconnect = [[XMPPReconnect alloc] initWithDispatchQueue:dispatch_get_main_queue()];
[reconnect activate:yourXMPPStream];

Обязательно сохраните объект переподключения где-нибудь, чтобы избежать освобождения.

person Michele De Pascalis    schedule 25.02.2013
comment
Спасибо, и да, я использовал XMPPReconnect, поэтому он автоматически восстанавливается. Тем не менее неприятно иметь разъединение каждую минуту. В любом случае, это произошло только в тот день и больше не повторялось, поэтому я предполагаю, что это проблема с Facebook. - person Billy Kan; 01.03.2013