Tag: xmpp

无法连接到Openfire服务器(使用smack api)

我试图使用smack 4.1.0运行此代码 Thread D= new Thread(new Runnable() { @Override public void run() { SmackConfiguration.setDefaultPacketReplyTimeout(10000); XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder() .setUsernameAndPassword(“harsh”, “pass”) .setServiceName(“192.168.0.200”) .setHost(“192.168.0.200”) .setPort(5223).setSecurityMode(ConnectionConfiguration.SecurityMode.ifpossible) .build(); AbstractXMPPConnection conn2 = new XMPPTCPConnection(config); try { conn2.connect(); conn2.login(); Presence presence = new Presence(Presence.Type.unavailable); presence.setStatus(“Gone fishing”); // Send the packet (assume we have an XMPPConnection instance called “con”). conn2.sendStanza(presence); } catch […]

如何使用Smack XMPP库创建SSL连接?

我正在构建一个充当XMPP客户端的小程序,我正在使用Smack库。 现在,我连接的服务器需要SSL(在Pidgin中我必须检查“强制旧(端口5223)SSL”)。 我无法让Smack连接到这台服务器。 可能吗?

如何使用Java的Smack API发送自定义XML数据包?

我正在使用Java中的Smack API连接到我的XMPP服务器。 我想发送一个这样的自定义消息包: hi C=”…” D=”…” 我猜我创建了我自己的Packet,它在它的toXML()方法中返回了这个XML。 但这似乎不起作用。 任何帮助,将不胜感激。

使用Smack 4.1的XMPP客户端在登录期间给出NullPointerException

我正在尝试使用Smack 4.1.0-rc3来实现连接到ejabberd xmpp服务器的java xmpp客户端。 我使用以下代码连接到服务器。 XMPPTCPConnectionConfiguration connConfig = XMPPTCPConnectionConfiguration .builder() .setServiceName(“example.com”) .setHost(“192.168.56.101”) .setPort(5222) .setCompressionEnabled(false) .setSecurityMode(SecurityMode.disabled) .setHostnameVerifier(new HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { return true; } }) .setUsernameAndPassword(user, pass).build(); connection = new XMPPTCPConnection(connConfig); connection.connect(); connection.login(); 执行’connection.login()’时,我得到以下NullPointerException。 Exception in thread “main” java.lang.NullPointerException at org.jivesoftware.smack.util.stringencoder.Base64.encode(Base64.java:64) at org.jivesoftware.smack.util.stringencoder.Base64.encode(Base64.java:60) at org.jivesoftware.smack.util.stringencoder.Base64.encodeToString(Base64.java:42) at org.jivesoftware.smack.sasl.SASLMechanism.authenticate(SASLMechanism.java:199) at org.jivesoftware.smack.sasl.SASLMechanism.authenticate(SASLMechanism.java:169) at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:236) […]

如何在订阅模式“两者”中添加名册

我正在使用smack 3.1.0,当我添加一个名册时,我无法获得“两者”的订阅。 谁能帮我? 下面是我的代码: Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all); Roster roster = connection.getRoster(); roster.createEntry(“buddy@test.com”,”me”,null) 代码执行后,我在openfire中观察到订阅是“到”

Smack 4在连接时抛出“SSLHandshakeException:ValidatorException:SunCertPathBuilderException”

对于我的xmpp堆栈的集成测试,我在localhost上设置了一个vysper服务器(0.7)。 现在我想在版本4.0.2中使用smack-core和smack-tcp连接到服务器。 问题: Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 由于smack 4 api已经发生了很大的变化,到目前为止发现的例子已经不能再使用了。 以前有人试过吗?

使用aSmack客户端映射Openfire自定义插件

我是XMPP的新手,请原谅我,如果这个问题听起来很愚蠢。 我想创建一个自定义插件并将其映射到Android上的aSmack客户端。 我正在尝试应用我的Web服务知识,但我没有赢。 所以请引导我的思路走向最佳方法,一个例子将非常有用。 提前完成。

JAXB编组XMPP节

我正在尝试使用以下代码段来编组消息: JAXBContext jContext = JAXBContext.newInstance(Iq.class); Marshaller m = newJAXBContext.createMarshaller(); m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); Bind bind = new Bind(); bind.setResource(“resource”); Iq iq = new Iq(); iq.setId(iqId); iq.setType(“set”); iq.getAnies().add(bind); ByteArrayOutputStream baos = new ByteArrayOutputStream(); m.marshal(iq, baos); 这里,Iq和Bind是由相关xmpp模式形成的对象。 我的问题是,使用jaxb 2.0及更高版本,所有命名空间都在根元素中声明: resource 但是,这里需要的是命名空间应该占用适当的位置: resource 有没有办法通过JAXB 2.0或更高版本在第二个xml节中看到它们来编组xmpp节? 长话短说,我在这里有两个问题:1。在适当的位置声明命名空间。 2.删除我理解的命名空间前缀可以使用NamespacePrefixMapper删除? 但不确定,一个例子会很棒。