Заработай на задачках

Итак, 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 потоками

Я буду очень рад комментарию!

Не переживайте, e-mail нигде не отображается. Обязательные поля помечены *

Навигация по записям