无法连接到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 (SmackException | IOException | XMPPException e) {

// TODO Auto-generated catch block

e.printStackTrace();

Log.d("TAG", e.toString());

}

ChatManager chatmanager = ChatManager.getInstanceFor(conn2);

Chat newChat = chatmanager.createChat("harsh@192.168.0.200");

try {

newChat.sendMessage("Howdy!");

}

catch (SmackException.NotConnectedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

});

D.start();

}

这给我一个错误:

05-15 14:59:35.350    4417-4439/com.example.smacktester W/System.err﹕ org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 10000ms (~10s). Used filter: No filter used or filter was 'null'. 05-15 14:59:35.351    4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.SynchronizationPoint.checkForResponse(SynchronizationPoint.java:192) 05-15 14:59:35.352    4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.SynchronizationPoint.checkIfSuccessOrWait(SynchronizationPoint.java:114) 05-15 14:59:35.352    4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.SynchronizationPoint.checkIfSuccessOrWaitOrThrow(SynchronizationPoint.java:97) 05-15 14:59:35.352    4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:837) 05-15 14:59:35.352    4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:360) 05-15 14:59:35.354    4417-4439/com.example.smacktester W/System.err﹕ at com.example.smacktester.MainActivity$1.run(MainActivity.java:50) 05-15 14:59:35.354    4417-4439/com.example.smacktester W/System.err﹕ at java.lang.Thread.run(Thread.java:818) 05-15 14:59:35.355    4417-4439/com.example.smacktester D/TAG﹕ org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 10000ms (~10s). Used filter: No filter used or filter was 'null'. 05-15 14:59:35.365    4417-4444/com.example.smacktester W/AbstractXMPPConnection﹕ Connection closed with error

org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT ��P@1:8 in java.io.BufferedReader@16ea33d4)

at org.kxml2.io.KXmlParser.next(KXmlParser.java:432)

at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)

at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1151)

at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$200(XMPPTCPConnection.java:937)

at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:952)

at java.lang.Thread.run(Thread.java:818) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ org.jivesoftware.smack.SmackException$NotConnectedException: Client is not, or no longer, connected 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExceptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1226) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfAppropriate(XMPPTCPConnection.java:336) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.sendStanza(AbstractXMPPConnection.java:609) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.chat.ChatManager.sendMessage(ChatManager.java:365) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.chat.Chat.sendMessage(Chat.java:114) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at org.jivesoftware.smack.chat.Chat.sendMessage(Chat.java:98) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at com.example.smacktester.MainActivity$1.run(MainActivity.java:71) 05-15 14:59:35.377 4417-4439/com.example.smacktester W/System.err﹕ at java.lang.Thread.run(Thread.java:818) 05-15 14:59:56.335 4417-4417/com.example.smacktester I/Timeline﹕ Timeline: Activity_idle id: android.os.BinderProxy@2763795b time:38739229 05-15 15:00:19.772 4417-4427/com.example.smacktester W/art﹕ Suspending all threads took:

10.531ms 05-15 15:02:44.503 4417-4427/com.example.smacktester W/art﹕ Suspending all threads took: 7.832ms

2015.05.15 14:50:03 index.jsp - Failed to fetch RSS feed: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: root certificate not trusted of [vanity2.jiveon.com]

我要去哪里错了?

回答:

根据与用户问题的讨论,AS.setPort(5223)位于XMPPTCPConnectionConfiguration中。默认情况下,Openfire中的端口5223是客户端SSL端口,

you can change this port setting in  Openfire 3.10 from Admin panel

服务器>>服务器设置>>客户端连接

错误

org.jivesoftware.smack.SmackException $

NoResponseException:在回复超时内未收到响应。超时时间为10000毫秒(约10秒)。

意味着您正在尝试不通过SASL协商而连接启用SSL的端口[5223]。意味着您需要将XMPP服务器[Opnefire]提供的SSL证书存储在应用程序中(内部/外部存储器中的某些位置),并使用相同的证书与SSL端口上的Xmpp服务器进行进一步的通信。

有关XMPP SASL协商的更多信息,请参考此链接

以上是 无法连接到Openfire服务器(使用smack api) 的全部内容, 来源链接: utcz.com/qa/400602.html

回到顶部