Я создаю (еще одно) приложение для мобильного чата, используя Smack и ejabberd. Я пытаюсь установить лучший способ реализации пользовательских аватаров для использования в многопользовательских чатах, а также, конечно же, для членов списка. Рассматривая возможные решения, я могу видеть:Поддержка XMPP для аватаров в многопользовательском чате
- XEP-0008 Аватары на основе IQ - аватары ограничены 64 на 64 пикселя, слишком малы.
- XAP-0153 vCard-based avatars - Простота реализации для пользователей в списке и в комнатах MUC, однако (а) источники, такие как this, похоже, указывают на то, что ваш собственный vcard необходимо загружать при каждом входе в систему (это строго верно ? Я не вижу этого в спецификациях), и (b) должно быть меньше 96 на 96 пикселей (все еще довольно мало)
- XEP-0084 Пользователь Аватар на основе Personal Eventing Protocol - Я не совсем понимаю, как я может извлекать аватары для всех пользователей в многопользовательской чат-комнате на основе этого протокола. Присоединившись к чат-комнате, мне нужно будет подписаться на узел метаданных всех пользователей и любое последующее присоединение к пользователям? А также отказаться от подписки, когда они покидают комнату? Я считаю, что это было бы довольно уродливо и неуклюже для реализации.
Может ли кто-то любезно указать мне в правильном направлении или указать, где я, возможно, неправильно понял? Благодарю.
Вы пробовали XEP-0054? – souvickcse
Спасибо @souvickcse, я понимаю, что XEP-0153 построен поверх XEP-0054. Однако я вижу, что я мог использовать поля BINVAL и EXTVAL vCard в XEP-0053 для хранения данных изображения или URI для изображения. Некоторые вопросы: 1. Существуют ли практические или теоретические ограничения на размер данных, которые мы можем хранить в BINVAL? Я не вижу в спецификации 2: нужно ли перезаписывать собственную визитную карточку пользователя при каждом входе в систему? Это просто требование обеспечить синхронизацию между клиентами? 3. Есть ли способ достичь этого, используя один из существующих спецификаций аватара XMPP (такой, который является стандартным и кросс-совместимым)? – Dave
Привет, у меня нет такой идеи (извините за это), я использовал это в одном из моих проектов, используя https://github.com/robbiehanson/XMPPFramework Code: 'NSData * photoData = [[[AppDelegate delegate] ] xmppvCardAvatarModule] photoDataForJID: user.jid]; ' – souvickcse