Как подключить XMPP-сервер Bosh с помощью библиотеки Java Smack?

У меня работает клиент xmpp на webapp с использованием strophe.js, в соответствии с моим сценарием использования я должен быстро переключаться на разные страницы

Текущий подход небезопасен, так как jid и пароль видны в java-скрипте, я нашел способ обойти защиту в strophe клиенте, пытаясь сократить время соединения (с помощью bosh), в то время как изучал книгу «Программирование XMPP с использованием JavaScript и jQuery », Джейк Моффитт (Jake Moffitt). Я натолкнулся на одно решение, элемент которого для обеих моих вышеуказанных проблем заключается в реализации механизма сессии. Он говорит, что мы можем использовать strophe attach (jid, sid, rid) для подключения к существующему соединению, поэтому мне нужны SID и RID , который я могу получить с сервера приложений !!!

Книга привела пример автоматического подключения к серверу Bosh, когда пользователь вошел в веб-приложение, автор реализовал его, используя проект Django в Python. Поскольку я использую Java в качестве языка на стороне сервера, я попытался реализовать тот же пример, используя Java SMCAK-4.0. .3 и smack-bosh-4.0.3, но не удается подключиться к серверу bosh (я использую ejabberd в качестве сервера xmpp)

мой код как ниже

 BOSHConfiguration config = new BOSHConfiguration(false,"192.168.0.106",5280,"/http-bind/","192.168.0.106");
                XMPPBOSHConnection xbc=new XMPPBOSHConnection(config); 
                xbc.connect();
                xbc.login("admin", "admin");
                System.out.println(xbc.getConnectionID());

трассировки стека

java.lang.ClassNotFoundException: org.xmlpull.v1.XmlPullParserFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at org.jivesoftware.smack.SmackConfiguration.processConfigFile(SmackConfiguration.java:352)
    at org.jivesoftware.smack.SmackConfiguration.processConfigFile(SmackConfiguration.java:347)
    at org.jivesoftware.smack.SmackConfiguration.<clinit>(SmackConfiguration.java:155)
    at org.jivesoftware.smack.ConnectionConfiguration.<init>(ConnectionConfiguration.java:67)

Когда я пытался войти на сервер bosh, он каждый раз терпел неудачу, я не уверен, что здесь не так, может кто-нибудь объяснить мне?

Еще одна вещь, которую я нашел, это то, что можно получить идентификатор сеанса (SID), используя «xbc.getConnectionID ()», но как найти идентификатор запроса?

Любая помощь по вышеуказанной проблеме будет ощутимой !!!!

заранее спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос