Russian Qt Forum
Ноябрь 23, 2024, 22:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Нужна библиотека для работы с Jabber. Пишу бота  (Прочитано 10123 раз)
G-virus
Гость
« : Июнь 30, 2010, 22:23 »

Всем привет! Посоветуйте плиз нормальную библиотеку для работы с жабой. Гуглил - уже два раза напоролся((

одна библа тупо не собиралась, а после того как все таки собралась, без всяких ошибок прога запускается, а контакт не появляется онлайн. Другая библа DLL написана на C# и я ваще хз как юзать ее на С++.
Киньте ссылки на хорошие библиотеки если у кого есть  Улыбающийся

P.S. qxmpp и agsXMPP.dll не предлагать
Записан
Sahab
Гость
« Ответ #1 : Июнь 30, 2010, 22:50 »

http://delta.affinix.com/iris/
Записан
Sanya
Гость
« Ответ #2 : Июль 01, 2010, 09:36 »

А чем QXMPP не понравилась?
Тем что не смог подключиться?

ИМХО, хорошо написанная библиотека, которую легко поправить под себя.
Записан
G-virus
Гость
« Ответ #3 : Июль 01, 2010, 14:14 »

А чем QXMPP не понравилась?
Тем что не смог подключиться?

ИМХО, хорошо написанная библиотека, которую легко поправить под себя.

Я собрал ее, все вроде казалось бы заработало. А коннект и прием\передача сообщений не происходит. Мб вы поможете мне?  Улыбающийся
Записан
Sanya
Гость
« Ответ #4 : Июль 01, 2010, 14:44 »

0. можно на ты.

1. Можно, только конкретные вопросы надо ставить.

2. Вообще я с месяц не забирал свежую версию с svn, но думаю принципиально ничего не изменилось. Так вот, там есть пример подключения к googleвскому серверу - он полностью рабочий. И не зубудь включить логировавание в файл - так легко понять как ведет себя соединение.

P.S.:
Я, по началу, прям в exe вживлял класс - так проще было разбираться ...
Записан
G-virus
Гость
« Ответ #5 : Июль 01, 2010, 18:37 »

там есть пример подключения к googleвскому серверу - он полностью рабочий.

Так он вроде коннектится к гуглу, в консоли появляется host found. Коннектится и к джабберу, но контакта не появляется в сети: то есть я тупо заменил хост\логин\пароль. По идее при таком коннекте контакт должен появится в сети. Я сделал аккаунт на jabber.ru, добавил к себе в друзья его, авторизовал все как полагается. В проге делаю коннект - без ошибок все делается, а контакт не появляется в сети. Собирал оба примера. Кстати в том примере, где осуществляется прием\передача сообщений, сообщение либо не доходит до проги, либо не посылается ею функцией sendPacket. Не знаю даже почему.
Записан
Sahab
Гость
« Ответ #6 : Июль 02, 2010, 00:19 »

+1
искаробки не работает...
допиливать руками
Записан
Sanya
Гость
« Ответ #7 : Июль 02, 2010, 07:36 »

G-virus:
А проверял эти 2 аккаунта на других клиентах, типа spark?

Можешь выложить код?

Sahab:
Брал месяц назад последнюю версию с svn - менял тока в pro файле имя конечной библиотеки и тип со статической на динамическую с неявным подключением - все работает.
« Последнее редактирование: Июль 02, 2010, 07:40 от Sanya » Записан
G-virus
Гость
« Ответ #8 : Июль 02, 2010, 11:15 »

G-virus:
А проверял эти 2 аккаунта на других клиентах, типа spark?
Можешь выложить код?

Нет. Проверил только jabber-аккаунт на мирке и все.

Код как из примера. Вот:
Код
C++ (Qt)
#include <QtCore/QCoreApplication>
#include <QXmppLogger.h>
#include <QXmppMessage.h>
#include <QXmppClient.h>
#include <iostream>
using namespace std;
 
 
class echoClient : public QXmppClient
{
   Q_OBJECT
public:
   echoClient(QObject *parent = 0);
   ~echoClient();
public slots:
   void messageReceived(const QXmppMessage&);
};
 
echoClient::echoClient(QObject *parent)
   : QXmppClient(parent)
{
   bool check = connect(this, SIGNAL(messageReceived(const QXmppMessage&)),
       SLOT(messageReceived(const QXmppMessage&)));
   Q_ASSERT(check);
}
 
echoClient::~echoClient()
{
 
}
 
 
void echoClient::messageReceived(const QXmppMessage& message)
{
   QString from = message.getFrom();
   QString msg = message.getBody();
   cout << msg.toStdString() << "\n";
   sendPacket(QXmppMessage("", from, "Пакет получен"));
}
 
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
   cout << "Hi, this is Jabber-Bot\n";
   QXmppLogger::getLogger()->setLoggingType(QXmppLogger::STDOUT);
echoClient client;
client.connectToServer("www.jabber.ru", "css_server", "steelaxe", "jabber.ru");
cout << "Connected!";
system("pause");
return a.exec();
}
 
Записан
Sanya
Гость
« Ответ #9 : Июль 02, 2010, 11:43 »

так, а можешь
setLoggingType(QXmppLogger::FILE)
и содержимое файла дать

Есть идеи, но гадать не хочу - лог точно все скажет.
Записан
G-virus
Гость
« Ответ #10 : Июль 02, 2010, 12:22 »

В лог файле вот это
Код:
13:19:25.281 : Connecting to: www.jabber.ru:5222

13:19:27.890 : Host found
Записан
Sanya
Гость
« Ответ #11 : Июль 02, 2010, 12:30 »

И все?
Вот мой кусок который как минимум есть еще и у меня:
11:58:16.664 INFO Connecting to: tili-tili
11:58:16.664 INFO Connecting to: tili-tili
11:58:16.711 DEBUG Host found
11:58:16.727 INFO Connected
11:58:16.727 CLIENT <?xml version='1.0'?><stream:stream to= etc.

попробуй убрать system("pause");
Записан
G-virus
Гость
« Ответ #12 : Июль 02, 2010, 13:00 »

13:19:25.281 : Connecting to: www.jabber.ru:5222

13:19:27.890 : Host found

13:58:17.921 : Connecting to: www.jabber.ru:5222

13:58:30.031 : Host found

Убрал
Вот что)
Записан
Sanya
Гость
« Ответ #13 : Июль 02, 2010, 15:01 »

Извини, но я тут немного с работой зашиваюсь - можешь выложить архивчик с уже готовым проектом?
Записан
G-virus
Гость
« Ответ #14 : Июль 02, 2010, 18:15 »

Извини, но я тут немного с работой зашиваюсь - можешь выложить архивчик с уже готовым проектом?

тык
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.189 секунд. Запросов: 21.