Как стать автором
Обновить

Комментарии 26

НЛО прилетело и опубликовало эту надпись здесь
зачем 10-20 строк, если можно обойтись тремя?
>гем очень нестабильно ведет себя под windows
Иногда 10-20 строк стабильнее.
Тут проблема в слове windows, а не в выборе технологии
Если тесты руби отрабатывают на windows без ошибок, а кривонаписанный xmpp4r падает, то виноват windows?
Но обычно — нет
НЛО прилетело и опубликовало эту надпись здесь
Интересно посмотреть на ваше решение, кстати. На чистом tcp.
НЛО прилетело и опубликовало эту надпись здесь
а где получение входящих сообщений? и обработка фейлов?
НЛО прилетело и опубликовало эту надпись здесь
Вообще очень удачное применение. Мы юзаем для этих же целей email, но jabber конечно выигрывает в опперативности :)
Мне не приходило в голову управлять сервером через джаббер бота ). А ведь хорошая идея для простых задачек.
Советую глянуть в сторону xmpp4r-simple для большей простоты (гем поверх xmpp4r). С ним код превращается в нечто подобное:

# Send a message to a friend, asking for authorization if necessary:
im = Jabber::Simple.new("user@example.com", "password")
im.deliver("friend@example.com", "Hey there friend!")

# Get received messages and print them out to the console:
im.received_messages { |msg| puts msg.body if msg.type == :chat }
Увы, с Rails 3 у меня этот гем работать не захотел.
А из-за чего он отказывался работать?
… xmpp4r-simple-0.8.8/lib/xmpp4r-simple.rb:441: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError)

И да, поправка, вроде не третьи рельсы виноваты, а руби 1.9.2. Гугл говорит, что на 1.8.7 все нормально.
Отлично, пока не переезжаю на 1.9 :)
Ну и зря =) Все остальное-то нормально работает. Просто гем этот не обновлялся уж очень давно.
У меня видимо просто мешают ассоциации такой нумерации с linux kernel 2.3 / 2.5 :)
Андрей, а это у вас на продакшене такое работает?
Ну да.
Подскажите пожалуйста, в чем может быть проблема — вставил ваш код, бот конектится, обрабатывает первое сообщение, а на остальные входящие сообщения потом не реагирует. Сам сообщения отправляет нормально. Куда можно капнуть?
*копнуть, позор мне ))
Лечится так. Стоит вписать Thread.stop в главный поток, после того, как установите все свои callback'и и прочий инициализирующий стафф.

Очень полезный пост на эту тему (англ.)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.