问题描述
我正在使用 Smack 库:
def smack_version = "4.3.3"
implementation "org.igniterealtime.smack:smack-android:$smack_version"
// Optional for XMPPTCPConnection
implementation "org.igniterealtime.smack:smack-tcp:$smack_version"
// Optional for XMPP-IM (RFC 6121) support (Roster,Threaded Chats,…)
implementation "org.igniterealtime.smack:smack-im:$smack_version"
// Optional for XMPP extensions support
implementation "org.igniterealtime.smack:smack-extensions:$smack_version"
private fun callMam() {
/*val manager = MamManager.getInstanceFor(connection)
val numberOfMessages = 500
val userBareJID = 5415845
val r = (manager.mostRecentPage(userBareJID,numberOfMessages)) as MamManager.MamQueryResult
if (r.forwardedMessages.size() >= 1) {
val message: Message = r.forwardedMessages.get(0).getForwardedStanza() as Message
Log.i("MAM_TAG","message received" + message.getBody())
}*/
Coroutinescope(Main).launch {
val xmppConnection = getXmppConnection()
if (xmppConnection == null) {
Log.w("Xmpp_TAG","xmppConnection is null")
return@launch
}
val chatManager: ChatManager = ChatManager.getInstanceFor(xmppConnection).apply {
addIncomingListener { from,message,chat ->
{
Log.w("Xmpp_TAG","from: $from,message: $message,chat: $chat")
}
}
addOutgoingListener { to,"to: $to,chat: $chat")
}
}
}
val newChat: Chat =
chatManager.chatWith(xmppConnection.user.asEntityBareJid()) // "harsh@192.168.0.200"
try {
newChat.send("Howdy!")
} catch (e: NotConnectedException) {
Log.e("Xmpp_TAG","NotConnectedException: ${e.message}",e)
}
}
}
private fun getXmppConfiguration(): XMPPTCPConnectionConfiguration {
val defaultReplyTimeout = 10000
SmackConfiguration.setDefaultReplyTimeout(defaultReplyTimeout)
return XMPPTCPConnectionConfiguration.builder()
.setUsernameAndPassword(usernameTest,passwordTest)
.setXmppDomain(serverNameTest)
.setHost(serverNameTest)
.setPort(portTest)
.setSecurityMode(ConnectionConfiguration.SecurityMode.ifpossible)
.build()
}
private fun getXmppConnection(): XMPPConnection? {
val xmppConnection: AbstractXMPPConnection = XMPPTCPConnection(getXmppConfiguration())
try {
xmppConnection.apply {
connect() // Error line,Throws CertPathValidatorException
login()
val presence = Presence(Presence.Type.unavailable).apply {
status = "Gone fishing"
}
// Send the packet (assume we have an XMPPConnection instance called "con").
sendStanza(presence)
}
return xmppConnection
} catch (e: SmackException) {
Log.e("Xmpp_TAG","SmackException: ${e.message}",e)
} catch (e: IOException) {
Log.e("Xmpp_TAG","IOException: ${e.message}",e)
} catch (e: XMPPException) {
Log.e("Xmpp_TAG","XMPPException: ${e.message}",e)
}
return null
}
CertPathValidatorException:未找到证书路径的信任锚。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)