1. 程式人生 > >XMPP客戶端部分無法連線,問題解決: No response from the server.: User: at org.jivesoftware.sm ack.NonSASLAuthentic

XMPP客戶端部分無法連線,問題解決: No response from the server.: User: at org.jivesoftware.sm ack.NonSASLAuthentic

XMPP客戶端部分無法連線,問題解決:

No response from the server.: User:     at org.jivesoftware.sm ack.NonSASLAuthentication.authenticate(NonSASLAuthentication

我有一個我在配置檔案中設定的XMPP帳戶。此JID能夠通過XMPP伺服器進行身份驗證。然而在伺服器啟動時,我得到:

13:49:33.437 [main] ERROR com.buddycloud.mediaserver.Main - XMPP connection coudn't be started
org.jivesoftware.smack.XMPPException: No response from the server.
    at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:73) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:368) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at org.jivesoftware.smack.Connection.login(Connection.java:348) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at com.buddycloud.mediaserver.Main.createAndStartConnection(Main.java:203) [buddycloud-media-server-jar-with-dependencies.jar:na]
    at com.buddycloud.mediaserver.Main.startXMPPToolBox(Main.java:122) [buddycloud-media-server-jar-with-dependencies.jar:na]
    at com.buddycloud.mediaserver.Main.main(Main.java:52) [buddycloud-media-server-jar-with-dependencies.jar:na]
13:49:33.438 [main] ERROR com.buddycloud.mediaserver.Main - Error while starting XMPP client / component
com.buddycloud.mediaserver.commons.exception.XMPPException: No response from the server.
    at com.buddycloud.mediaserver.Main.createAndStartConnection(Main.java:207) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at com.buddycloud.mediaserver.Main.startXMPPToolBox(Main.java:122) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at com.buddycloud.mediaserver.Main.main(Main.java:52) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
Caused by: org.jivesoftware.smack.XMPPException: No response from the server.
    at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:73) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:368) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at org.jivesoftware.smack.Connection.login(Connection.java:348) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    at com.buddycloud.mediaserver.Main.createAndStartConnection(Main.java:203) ~[buddycloud-media-server-jar-with-dependencies.jar:na]
    ... 2 common frames omitted
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
    at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:798)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1493)
    at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:103)
    at com.sun.net.ssl.internal.ssl.Handshaker.kickstart(Handshaker.java:626)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1240)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1137)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149)
    at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:806)
    at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:267)
    at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:43)
    at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)

相關配置如下所示:

# XMPP
xmpp.component.host=localhost
xmpp.component.port=5347
xmpp.component.subdomain=mediaserver.surevine.com
xmpp.component.secretkey=[ not this time ]
xmpp.reply.timeout=60

xmpp.connection.username=mediaserver
xmpp.connection.password=[ not this time ]
xmpp.connection.host=localhost
xmpp.connection.port=5222
xmpp.connection.servicename=surevine.com
  • 我已經向媒體伺服器添加了兩個配置屬性:
# Whether the client will use SASL authentication when logging into the server (true|false).
xmpp.connection.saslenabled=true

# TLS security mode used when making the connection (disabled|enabled|required).
xmpp.connection.securitymode=enabled

如果現在有更高的回覆超時,請告訴我

針對XMPP建立使用者是可以不需要驗證的連線。而login是需要把SASLAuthentication開啟。

總之, 只要把config的SASLAuthentication開啟即可。

-----------------------------------------------------------------------

更多資料,可以參考smack針對xmpp協議的處理:

如果解決了問題,請在github上收藏點贊。多謝