Como conectar o servidor XMPP bosh usando a biblioteca java smack?
Eu estou trabalhando com o cliente xmpp no webapp usando strophe.js, conforme meu cenário de caso de uso, tenho que mudar rapidamente para páginas diferentes
A abordagem atual não é segura, pois jid e a senha são visíveis no script java. Eu estava encontrando uma solução alternativa para implementar a segurança no cliente strophe, tentando diminuir o tempo de conexão (com o bosh), enquanto passava pelo livro "XMPP Programming with JavaScript and jQuery "por jake moffitt me deparei com uma solução cujo elemento dos meus problemas acima é implementar o mecanismo de sessão. que diz que podemos usar strophe attach (jid, sid, rid) para conectar-se à conexão existente, por isso preciso de SID e RID , que posso obter do servidor de aplicativos !!!
O livro deu um exemplo de conexão automatizada ao servidor bosh quando o usuário efetuou login no aplicativo da web, o autor o implementou usando um projeto Django em python. Como eu estou usando java como linguagem do lado do servidor, tentei implementar o mesmo exemplo usando java smcak-4.0 .3 e smack-bosh-4.0.3, mas não é possível conectar-se ao servidor bosh (estou usando o ejabberd como servidor xmpp)
meu código é como abaixo
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());
rastreamento de pilha
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)
Quando tentei entrar no servidor bosh ele falha sempre, não tenho certeza do que está errado aqui, alguém pode me explicar?
Mais uma coisa que eu acho é que é possível obter o SID (identificador de sessão) usando "xbc.getConnectionID ()", mas como encontrar o identificador de solicitação?
Qualquer ajuda no problema acima será apreciável !!!!
desde já, obrigado!