Составители:
Рубрика:
83
учётных записях и тем, что самостоятельно оперирует каналами, в то время, как обычный подход,
который будет описан ниже, полагается в этом на диспетчер каналов.
Рассмотрим пример, который находится в архиве telepathy-client-lowlevel.tar.gz.
Пример
представляет собой простой чат-клиент для jabber. Осовные этапы его работы таковы:
· Получаем сущность ConnectionManager для gabble
ConnectionManager::create("gabble")
· Используя low-level интерфейс ConnectionManager, создаём соединение
CM->lowlevel()->requestConnection()
· Активируем соединение:
connection->lowlevel->requestConnect()
· Запрашиваем сущность Contact для заданного имени через ContactManager
connection->contactManager()->conatctsForIdentifiers()
· Используя низкоуровневый интерфейс Connection, запрашиваем создание текстового канала
(TextChannel)
connection->lowlevel()->createChannel()
· Запрашиваем активацию необходимой функциональности канала (в особенности
FeatureMessageQueue для приёма сообщений)
channel->becomeReady(QSet<Tp::Feature>)
· Канал готов к работе: подключаемся к сигналу TextChannel::messageReceived() и вызываем слот
sendMessage() для отправки сообщений.
Сборка и запуск приложения
· Выполняем для генерации Makefile
qmake [-makefile]
Внимание: если вами была ранее установлена версия libtelepathy-qt4 из репозитория, то при
вызове make необходимо указывать
SUBLIBS="-L/usr/include"
иначе линковщик не сможет найти нужную версию библиотеки.
· Запуск приложения:
./client <account_1> <Account_1_password> <account_2>
Высокоуровневая реализация клиента
Высокоуровневый подход в API Telepathy-qt4 использует для создания каналов абстракции
AccountManager и Account. Вместо обращения к одному из менеджеров соединений и создания
соединения с сервисом с заданными параметрами, мы используем Account, учётную запись,
зарегистрированную в системе ранее (в нашем примере, однако, мы сами создаём и удаляем её). Для
Account можно задать состояние подключения («в сети», «недоступен» и т. п.) и затребовать канал
необходимого типа.
Следует отметить, однако, что созданные таким образом каналы не возвращаются
непосредственно в результате вызова, а передаются для обработки диспетчеру каналов, который,
согласно значению параметра PreferredHandler, передаёт канал тому или иному обработчику.
Очевидно, для того, чтоб получить управление над этим каналом, наше клиентское приложение
должно зарегистрироваться как обработчик каналов.
Рассмотрим основные шаги работы высокоуровневой реализации клиента, которая находится в
архиве telepathy-client.tar.gz:
· Реализуем свой AbstractClientHandler, который будет принимать вновь созданные соединения и
создавать для них ChatWidget.
· Регистрируем клиент
· Получаем сущность AccountManager и создаём новый Account
· Активируем аккаунт
Account::setEnabled()
Страницы
- « первая
- ‹ предыдущая
- …
- 81
- 82
- 83
- 84
- 85
- …
- следующая ›
- последняя »
