Пространство имен компонента Openfire XMPP в getChildElement в пакете
Будучи новичком в XMPP и Java (я являюсь разработчиком iOS), следуя некоторому руководству, мне удалось написать серверный компонент (Openfire) и клиентское приложение iOS (используя ib xmppframeowrk от robbiehanson). Я мог отправлять и получать сообщения для компонента <-> iOS-клиента. Вот абстрактный код:
Отправка присутствия из приложения iOS client на серверный компонент:
XMPPPresence *presence = [XMPPPresence presence];
[presence addAttributeWithName:@"to" stringValue:serverComponentJid];
NSXMLElement *someInfo = [NSXMLElement elementWithName:@"someInfo"
stringValue:@"xyz"];
[presence addChild:someInfo];
[_xmppStream sendElement:presence];
Получение пакета в серверном компоненте:
if (packet instanceof Presence){
org.xmpp.packet.Presence recvPresence = (Presence) packet;
Element theInfo = recvPresence.getChildElement("someInfo", "***what_shoud_be_the_namespace_here***");
System.out.println("Some info in the presence as " + theInfo.attributeValue("someInfo"));
Я могу распечатать пакет и посмотреть someInfo. Когда я передаю "" в пространстве имен, тогда я могу получить его правильно, что понятно. Однако я до сих пор не понимаю, что и как использовать пространство имен в xmpp. Любое руководство, тут, ссылка, ссылка или ответы, пожалуйста
1 ответ
Пространства имен используются для определения "использования / объема" раздела (пакета). Они используются для определения функциональности и связывания действий (анализатор, список и т. Д.), Поэтому любой API сможет добавить поведение (по умолчанию или пользовательское), основанное на tagName и пространстве имен.
Таким образом, пространство имен используется как зарезервированный ключ для протокола.
С помощью пользовательских пространств имен можно определить пользовательский IQ (или что-то еще) и иметь собственную логику / анализатор и т. Д., Чтобы запускать точность, когда вы хотите, и получать n пользовательских действий, которые вам нравятся и вам нужны.
Официальные документы:
https://datatracker.ietf.org/doc/rfc6120/?include_text=1
И больше: