Установлен в сети OpenFire (jabber-сервер) с пользователями, группами и пр.
Пишу к нему бота для отправки сообщений на основе библиотеки agsXMPP.
Все хорошо, пока не доходит до запроса списка пользователей и групп (Iq).
По идее, сервер должен возвращать некий XML, который из-за ограничения размера буффера (1 кБ) разбивается на несколько буферов.
При парсинге некоторых буферов возникает Exception. Выяснил, что Exception возникает, если буфер заканчивается первым байтом UDF-символа с названием группы (условно — если в блоке нечетное количество символов, занимающих один байт).
Вопрос — как с этим бороться?
На сервер грешить не приходится, ибо куча разных jabber-клиентов с ним работают.
Спасибо.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, mDmitriy, Вы писали: D>>что есть "ваершарк"?
А причем тут этот сайт?
У меня с сетью все хорошо, Spark и Pandion с моей машины работают; если игнорировать exception, то мой бот отправляет сообщение кому должен.
Смущает именно парсер, ибо часть информации о пользователях и группах теряется.
Re[3]: Не распарсивается ответ от Jabber-сервера -((
Здравствуйте, Kernan, Вы писали:
K>>>Что показыватье ваершарк? D>>что есть "ваершарк"? K>wireshark
Зачем он мне? У меня с сетью проблем нет. Речь идет о самописном jabber-боте.
Коробочные версии на моей машине работают без проблем.
Здравствуйте, mDmitriy, Вы писали:
D>Установлен в сети OpenFire (jabber-сервер) с пользователями, группами и пр. D>Пишу к нему бота для отправки сообщений на основе библиотеки agsXMPP.
1199,- EUR per developer ?
D>Все хорошо, пока не доходит до запроса списка пользователей и групп (Iq). D>По идее, сервер должен возвращать некий XML, который из-за ограничения размера буффера (1 кБ) разбивается на несколько буферов. D>При парсинге некоторых буферов возникает Exception. Выяснил, что Exception возникает, если буфер заканчивается первым байтом UDF-символа с названием группы (условно — если в блоке нечетное количество символов, занимающих один байт).
кто парсит-то: ты или agsxmpp?
если либа, то проще поменять её
если ты, то накапливай данные
...coding for chaos...
Re[5]: Не распарсивается ответ от Jabber-сервера -((
Здравствуйте, mDmitriy, Вы писали:
D>Зачем он мне? У меня с сетью проблем нет. Речь идет о самописном jabber-боте.
О Б-же. Ты вообще программист? Тебе надо проблему локализовать. Если не можешь отдебажить проблему на уровне кода, смотри что ходит по сети и сравнивай с тем, что должно. Это же так просто. D>Коробочные версии на моей машине работают без проблем.
Ну дык и посмотри как оно работает и какие сообщения ходят если не можешь осилить XMPP RFC.
Sic luceat lux!
Re[6]: Не распарсивается ответ от Jabber-сервера -((
Здравствуйте, Kernan, Вы писали:
K>Здравствуйте, mDmitriy, Вы писали: K>О Б-же. Ты вообще программист? Тебе надо проблему локализовать. Если не можешь отдебажить проблему на уровне кода, смотри что ходит по сети и сравнивай с тем, что должно. Это же так просто.
Может, и просто... Только мне это не интересно на данном этапе — я ведь не сервер отлаживаю, а клиента. Если другие джаббер-клиенты работают, значит сервер присылает им (а, соответственно, и мне) то что нужно.
И в дебаге я прекрасно вижу (прям в виде строки), что он мне присылает. Проблема в разборе присланного и она локализована (до протокола даже еще не дощло). Непонятно, как исправить малой кровью. D>>Коробочные версии на моей машине работают без проблем. K>Ну дык и посмотри как оно работает и какие сообщения ходят если не можешь осилить XMPP RFC.
Читаем внимательно исходный пост — вопрос был о конкретной библиотеке, а не о сетевом обмене вообще.
Re[2]: Не распарсивается ответ от Jabber-сервера -((