[英]how to implement smack for xmpp
我試圖讓我的 android 應用程序能夠使用 smack 發送和接收 xmpp 消息,但它不起作用並且連接命令不返回。 我看過幾個代碼示例,但 Smack 有新版本,語法也發生了變化,所以我可能做錯了什么:
在我的 build.graddle 文件中,我使用:
compile "org.igniterealtime.smack:smack-android-extensions:4.3.0"
compile "org.igniterealtime.smack:smack-tcp:4.3.0"
我正在嘗試從 myaccount321@xabber.org 向 myaccount456@xabber.org 發送消息 我正在嘗試使用 hot-chilli.net 進行連接(我不介意使用其他服務器))
go 似乎一切都很好,直到 connection.connect() 之后腳本不會在不觸發任何異常的情況下返回。
請告訴我我做錯了什么
TIA
public void sendxmpp(){
XMPPTCPConnectionConfiguration config = null;
try {
XMPPTCPConnectionConfiguration.Builder configbuilder = XMPPTCPConnectionConfiguration.builder();
configbuilder.setUsernameAndPassword("myaccount321","myaccount321pw");
DomainBareJid serviceName = JidCreate.domainBareFrom("hot-chilli.net");
configbuilder.setServiceName(serviceName);
configbuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
configbuilder.setHost("jabber.hot-chilli.net");
configbuilder.setPort(8222);
config=configbuilder.build();
AbstractXMPPConnection connection = new XMPPTCPConnection(config);
try {
connection.connect();
}
catch (SmackException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (XMPPException e) {
e.printStackTrace();
}
catch (InterruptedException e) {
e.printStackTrace();
}
connection.login();
ChatManager chatManager = ChatManager.getInstanceFor(connection);
EntityBareJid jid = JidCreate.entityBareFrom("myaccount321pw@xabber.org");
Chat chat = chatManager.createChat(jid);
chat.sendMessage("Hello");
}
catch (Exception e) {
}
}
好的,我明白了,連接過程必須在它自己的線程中完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.