Nid*_*esh 4 client android chat xmpp smack
我一直在尝试使用 smack 4.1 创建一个 android 聊天应用程序。消息发送和接收工作正常,但问题是在 mXmppConnection.addAsyncStanzaListener 中多次收到相同的消息。我不知道我是否错过了向连接添加某些内容。
这是我的连接类:
XMPPTCPConnectionConfiguration.Builder configBuilder = new XMPPTCPConnectionConfiguration.builder();
configBuilder.setUsernameAndPassword(mUser, "password@123");
configBuilder.setPort(5555);
configBuilder.setServiceName("tvm.myname.com");
configBuilder.setDebuggerEnabled(true); configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
try
{
XMPPTCPConnection mConnection = new XMPPTCPConnection(configBuilder.build());
mConnection.connect();
mConnection.login();
}
catch (SmackException e)
{
}
Run Code Online (Sandbox Code Playgroud)
mXmppConnection.addAsyncStanzaListener(new StanzaListener() {
@Override
public void processPacket(Stanza packet) throws SmackException.NotConnectedException {
Message message = (Message)packet;
Log.i("XMPPClient", "****** message " + message);
// code for handling message
} `enter code here`
},null);
Run Code Online (Sandbox Code Playgroud)
真正的问题是我多次收到消息......消息的值在日志中打印了几次。请帮我....
终于有了解决方案
问题不在于客户端,而在于粗心的编码。我一直将连接对象的单个实例分配给一个类变量,并且监听器每次都添加到这些引用对象中。所以这会导致多次调用侦听器......修复是通过将侦听器添加到单例连接对象来完成的。