Итак, gloox мы установили, пол дела сделано, осталось еще немного : подключится к jabber серверу.
Для начала нам нужно будет подключить два файла, в первом обьявлен класс самого клиента, а во втором класс, с помощью которого можно устанавливать различные параметры( версия ОС, версия клиент и т.д. ) и получать их =) :
#include <gloox/client.h>
#include <gloox/disco.h>
Теперь начнем писать класс бота с помощью gloox :
class Bot{
public:
Bot();
~Bot();
void Connect();
protected:
gloox::Client *client;
};
Будет примерно так, к сожалению что-то блог не даёт нормально выровнять текст, поэтому буду писать по одному методу, итак, конструктор:
Bot::Bot(){
// задаем JID бота, таки я специально для этого зарегестрировал
// на xdsl.by аккаунт
const std::string LOGIN = "gloox@xdsl.by/test";
// а теперь пароль, кто поменяет, тот дурак :P
const std::string PASSWORD = "111111";
// создаем обьект класса gloox::Client с соответствующем паролем и логином
client = new gloox::Client( LOGIN, PASSWORD );
// отключаем ростер, он нам пока не нужен =)
client->disableRoster();
// устанавливаем статус на доступен
client->setPresence( gloox::Presence::Available, -1 );
// Устанавливаем всякие версии, hello gloox::Disco :)
client->disco()->setVersion( "gloox", gloox::GLOOX_VERSION, "Jukovec-oo.blog.tut.by" );
client->disco()->setIdentity( "Simple", "Bot" );
// отказываемся от сжимания трафика
client->setCompression( false );
}
Ну а теперь деструктор, уничтожать нам особо нечего, ну да ладно :
Bot::~Bot(){
delete client; // хотя еще бы отконнектится немешало бы, но в данном случае оно не нужно
}
Ну и сам Connect() :
void Bot::Connect(){
client->connect();
}
Ну и собственно пускалка нашего ботика :
int main(){
Bot myBot;
myBot.Connect();
}
Вот как-то пока всё, если добавить jid : «gloox@xdsl.by» в ростер, то можно будет наблюдать, как он весело законнектился =)
PS компилировать так :
g++ -o test test.cpp -lgloox -lpthread
-lgloox — линкуем с библиотекой gloox
-lpthread — линукуем с стандартными POSIX потоками