我使用strophe.js在webapp上运行xmpp客户端,根据我的用例场景我必须快速切换到不同的页面
当前的方法并不安全,因为jid和密码在java脚本中是可见的,我正在寻找解决方案来在strophe客户端中实现安全性,试图使连接时间(与bosh)更短,同时阅读“使用JavaScript和XMPP编程”一书jQuery“通过jake moffitt我遇到了一个解决方案,我上面的两个问题都是实现会话机制的元素.它说我们可以使用strophe attach(jid,sid,rid)连接到现有连接,所以我需要SID和RID ,我可以从应用程序服务器获得!
本书给出了一个用户登录Web应用程序时自动连接到bosh服务器的示例,作者使用python中的Django项目实现它,因为我使用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.(SmackConfiguration.java:155)
at org.jivesoftware.smack.ConnectionConfiguration.(ConnectionConfiguration.java:67)
当我试图登录到波什服务器时,它每次都会失败,我不确定这里有什么问题可以解释一下吗?
我发现的另一件事是可以使用“xbc.getConnectionID()”获取会话标识符(SID)但是如何查找请求标识符?
对上述问题的任何帮助都将是适合的!
提前致谢!