无法使用stack Android在openfire中创建新用户



我正在尝试为android的即时消息应用程序创建一个新用户,该用户将存储在openfire数据库中,但每次我运行它时,用户记录都不会显示在openfire中

创建用户活动

private void setConnection() {
// Create the configuration for this new connection
//this function or code given in official documention give an error in openfire run locally to solve this error
//first off firewall
//then follow my steps
new Thread() {
@Override
public void run() {
InetAddress addr = null;
try {
// inter your ip4address now checking it
addr = InetAddress.getByName("192.168.23.150");
} catch (UnknownHostException e) {
e.printStackTrace();
}
HostnameVerifier verifier = new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return false;
}
};
DomainBareJid serviceName = null;
try {
serviceName = JidCreate.domainBareFrom("localhost");
} catch (XmppStringprepException e) {
e.printStackTrace();
}
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setUsernameAndPassword("admin","kalaBOOK98")
.setPort(9090)
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setXmppDomain(serviceName)
.setHostnameVerifier(verifier)
.setHostAddress(addr)
.setDebuggerEnabled(true)
.build();
Log.v(TAG,"connection configured");
mConnection = new XMPPTCPConnection(config);
//now send message and receive message code here
AccountManager accountManager = AccountManager.getInstance(mConnection);
try {
Log.v(TAG,"Creating new user");
accountManager.createAccount(Localpart.from(userId),userPassword);
} catch (SmackException.NoResponseException e) {
Log.v(TAG,"Error in creating user"+e);
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
Log.v(TAG,"Error in creating user"+e);
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
Log.v(TAG,"Error in creating user"+e);
e.printStackTrace();
} catch (InterruptedException e) {
Log.v(TAG,"Error in creating user"+e);
e.printStackTrace();
} catch (XmppStringprepException e) {
Log.v(TAG,"Error in creating user"+e);
e.printStackTrace();
}
}
// Now we create the account:
// The account has been created, so we can now login
}.start();
}

每次我尝试运行它时,这个日志错误都会显示在上

记录

2018-11-30 18:44:16.186 12186-12855/com.example.user.myapplication V/SignupActivity: connection configured
2018-11-30 18:44:16.216 12186-12855/com.example.user.myapplication V/SignupActivity: Creating new user
2018-11-30 18:44:16.218 12186-12855/com.example.user.myapplication V/SignupActivity: Error in creating userorg.jivesoftware.smack.SmackException$NotConnectedException: Client is not, or no longer, connected.
2018-11-30 18:44:16.218 12186-12855/com.example.user.myapplication W/System.err: org.jivesoftware.smack.SmackException$NotConnectedException: Client is not, or no longer, connected.
2018-11-30 18:44:16.226 12186-12855/com.example.user.myapplication W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfAppropriate(XMPPTCPConnection.java:354)
2018-11-30 18:44:16.226 12186-12855/com.example.user.myapplication W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.sendStanza(AbstractXMPPConnection.java:670)
2018-11-30 18:44:16.227 12186-12855/com.example.user.myapplication W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.createStanzaCollectorAndSend(AbstractXMPPConnection.java:769)
2018-11-30 18:44:16.227 12186-12855/com.example.user.myapplication W/System.err:     at org.jivesoftware.smackx.iqregister.AccountManager.createStanzaCollectorAndSend(AccountManager.java:370)
2018-11-30 18:44:16.227 12186-12855/com.example.user.myapplication W/System.err:     at org.jivesoftware.smackx.iqregister.AccountManager.getRegistrationInfo(AccountManager.java:366)
2018-11-30 18:44:16.227 12186-12855/com.example.user.myapplication W/System.err:     at org.jivesoftware.smackx.iqregister.AccountManager.getAccountAttributes(AccountManager.java:184)
2018-11-30 18:44:16.227 12186-12855/com.example.user.myapplication W/System.err:     at org.jivesoftware.smackx.iqregister.AccountManager.createAccount(AccountManager.java:249)
2018-11-30 18:44:16.227 12186-12855/com.example.user.myapplication W/System.err:     at com.example.user.myapplication.Login.SignupActivity$3.run(SignupActivity.java:192)

任何帮助都将不胜感激提前感谢

正如您在日志中看到的,您必须连接到服务器才能创建新用户。您的连接出现问题,在重新连接成功之前无法创建用户。您可以通过以下方法在创建用户之前检查您的连接或身份验证状态:

connection.isAuthenticated()
connection.isConnected()
mConnection = new XMPPTCPConnection(config);
//now send message and receive message code here
AccountManager accountManager = AccountManager.getInstance(mConnection);
try {
accountManager.createAccount(Localpart.from(userId),userPassword);
} …

创建连接实例后,该实例未连接这就是为什么当您尝试执行需要连接的操作时,会得到NotConnectedException。为了在XMPP服务上创建帐户,您首先必须通过调用连接到服务

`mConnection.connect()`.

最新更新