QXMPP extensions not calling

97 Views Asked by At

I'm making one xmpp client and I have a lot doubts in extensions ..

I did need get a list of old messages with one user, so .. I'm using the QXmppArchiveManager class for that. So I make one class like that:

...

class QXmppArchiveManager;
class MessageController : public QXmppClient
{
...

private:
    QNetworkAccessManager *nam_;
    QXmppClient *xmppClient_;
    QXmppArchiveManager *archiveMng_;
    QDateTime m_startDate;
    QDateTime m_endDate;

protected slots:
    virtual void onConnected();
    virtual void onMessageReceived(const QXmppMessage &);
    virtual void archiveListReceived(const QList<QXmppArchiveChat> &chats, const QXmppResultSetReply &rsmReply);
}

And implements

...
void MessageController::onConnected() //before client connects listener...
{

    QXmppResultSetQuery rsmQuery;
    rsmQuery.setMax(0);
    m_startDate = QDateTime::currentDateTime().addDays(-201);
    m_endDate = QDateTime::currentDateTime();

    archiveMng_->listCollections("", m_startDate, m_endDate, rsmQuery);

}

void MessageController::connect()
{

    xmppClient_ = new QXmppClient();
    QObject::connect( xmppClient_, SIGNAL( connected() ), this, SLOT( onConnected() ) );
    QObject::connect( xmppClient_, SIGNAL( messageReceived( QXmppMessage ) ), this, SLOT( onMessageReceived( QXmppMessage ) ) );

    archiveMng_ = new QXmppArchiveManager;
    xmppClient_->addExtension(archiveMng_); 

    QObject::connect(archiveMng_, SIGNAL(archiveChatReceived(QXmppArchiveChat, QXmppResultSetReply)),
                    SLOT(archiveChatReceived(QXmppArchiveChat, QXmppResultSetReply))); 

    QObject::connect(archiveMng_, SIGNAL(archiveListReceived(QList<QXmppArchiveChat>, QXmppResultSetReply)),
                SLOT(archiveListReceived(QList<QXmppArchiveChat>, QXmppResultSetReply))); 

    xmppClient_->logger()->setLoggingType( QXmppLogger::StdoutLogging );  

    QXmppConfiguration config;

    config.setDomain("(censored)");
    config.setHost("(censored)");
    config.setPort(5222);
    config.setUser((censored));
    config.setPassword((censored));
    config.setResource("Android-Client");

    xmppClient_->connectToServer( config );

}

void MessageController::archiveChatReceived(const QXmppArchiveChat &chat, const QXmppResultSetReply &rsmReply)
{
    qDebug() << "archiveChatReceived";
}

void MessageController::archiveListReceived(const QList<QXmppArchiveChat> &chats, const QXmppResultSetReply &rsmReply)
{
    qDebug() << "archiveListReceived";
}

The problem is ... this code not called this listeners, in this case not call "archiveListReceived".

How I can fix that ?

Thanks

1

There are 1 best solutions below

1
On

I found the problem, in this case my openfire xmpp server not working for archive, so ... I'm install the open-archive plugin for it!