Pull to refresh

Comments 11

использовал Smack API в одном из приложений для Android год назад… очень понятная библиотека, легко расширяемая и быстроподнимаемая. Кстати использовал как осному для XMPP мессенджера для vkontakte (гемора было больше с вконтактом чем с библиотекой).
и один нюанс, связанный с этим ботом.

Нюанс! Черт, это «сложное» слово так часто пишут через мягкий знак, что его правильное написание вызывает настоящую радость и уважение :)
О, благодарю! :)
Я очень люблю, когда правильно пишут, и сам стараюсь по мере своих возможностей
Кстати, отправлять сообщение лучше (да и проще) тоже через connection.sendPacket, а не создавать чат для отправки одного мессажа ;)

Хорошая библиотека, удобная и довольно гибкая. Но тонких и неуловимых глюков в ней просто куча :(
Спасибо! У меня была версия с отправкой сообщения через sendPacket, но бот страшно заглючил, и пришлось откатить. Пока оставил как есть.
Не могли бы вы рассказать, что за глюки, или где о них можно почитать?
С чатами были какие-то проблемы, по-моему они подвисали где-то внутри при регулярном create. А может я просто не умел их готовить и не делал какие-то инициализации или наоборот, освобождения. Документация на некоторый счёт весьма скудна. Через sendPacket всё работало точно, надо только пакет полностью заполнить (from/to итд).
Про глюки, честно говоря, всего уже не вспомню. То коннект не получался, то память жрало в разных частях. Последнее что было (это уж не очень давно всплыло) — одна из крайних версий либы перестала соединяться при некоторых условиях (кажется, дело было в SASL авторизации), а так как использований наших продуктов в среднем довольно много и на разных платформах, и используются клиентами разные xmpp-сервера, то получалось что мы снова огребли от некоторого кол-ва наших клиентов. Пришлось гуглить, искать похожие баги (встречались многочисленные упоминания), рыть исходники итд итп. В итоге из релизной версии, исходников из svn-транка и некоторых рецептов из инета соорудил какие-то заплатки, кажется, до сих пор это и поставляется в сборках)
Ну и постоянно какие-то мелочи были. Когда не выходишь за рамки принял/отправил, наверно и не заметно, а тут приходилось прикручивать к активной системе с огромной нагрузкой, и надо ещё следить чтобы не посыпалась память, чтобы потокобезопасно использовалось при этом и экономично. Ну, как-то так…
Огромное спасибо! Теперь буду знать чего и когда ждать
Тоже доволен этой библиотекой, бота пришлось написать потому что так и не смог найти где Jabber хранит информацию о времени подключения и отключения пользователей. А так, библиотека шикарная.
А у меня со smack проблема с отправкой сообщений в простейшей программе, если не ставить Thread.sleep(1000); сообщения иногда не отправляются, наверное метод sendMessage асинхронный и надо както отловить что он точно закончил отправку сообщения и только потом закрывать программу.
chat.sendMessage(«Test!»);
Thread.sleep(1000);
connection.disconnect();
Как бы избавиться от Thread.sleep(1000); чтобы количество сообщений было не 1 в секунду?
Даже не знаю, что вам подсказать. Уже год прошел почти, как я перестал работать с тем ботом.

Для начала попробуйте отловить исключение, вдруг что-нибудь покажет.

try
{
    chat.sendMessage(message);
}
catch (XMPPException e)
{
    System.out.printLn(e.getMessage());
}

Есть еще одна версия: в более новой версии библиотеки smack изменился принцип отправки сообщений. Попробуйте почитать документацию.
Если не поможет — попробуйте воссоздать моего бота. Надеюсь, код подойдет для новой версии библиотеки. Не помню, чтобы у меня была такая проблема. Удачи!
UFO just landed and posted this here
Sign up to leave a comment.

Articles