Задать вопрос

PHP XMPP 24/7 бот

Здравствуйте. Возникла потребность написать jabber-бота, который будет работать круглосуточно, при этом принимая и отправляя около 2000 сообщений в час и работая с БД MongoDB.
Работать бот будет на Linux, но поскольку у меня нету достаточных знаний C/С++ (что предпочтительнее для этой задачи), я хочу написать его на PHP 5.3.
Но как с подобного рода задачами обстоят дела у PHP? Не будет у такого скрипта низкая производительность? Не будет ли он «сжирать» память?
Спасибо за подсказки.
  • Вопрос задан
  • 5343 просмотра
Подписаться 8 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 9
Riateche
@Riateche
В свое время пытался решить подобную задачу. Ничего хорошего из этого не вышло: соединение постоянно рвалось или зависало. В принципе, проблем с памятью быть не должно. Если же они будут, можно перезапускать скрипт через определенные промежутки времени, это не страшно.

Я бы посоветовал освоить один из более высокоуровневых языков (например, Python или Ruby). Освоить Ruby на начальном уровне — дело одного дня, а подобные задачи на нем решаются на порядок проще.
Ответ написан
Комментировать
@shsmad
python + twisted?
Ответ написан
Комментировать
VBart
@VBart
Потратьте пару дней на изучение Python и напишите на нем (можно, как уже упоминалось, взять Twisted). Будет гораздо лучше, как для вас, так и для решения задачи.
Ответ написан
Carzil
@Carzil
Писал когда-то на python'e + xmpppy:
wiki.linuxformat.ru/index.php/LXF121:Python
xmpppy.sourceforge.net/
Ответ написан
Комментировать
@korotovsky
Вот тут http://steelbot.net можно найти Jabber бота, с плагинами и прочими плюшками. Лучший вариант из тех что я видел.
Ответ написан
slang
@slang
2000 в час, это в среднем 1 сообщение раз в 1.8 секунды, вы действительно думаете что это серьёзная нагрузка? РНРшный CLI демон спокойно справится, тем более что будет резвый NoSQL-сторейдж.
Ответ написан
Комментировать
Производительности вполне достаточно для таких нагрузок, если логика бота простая, а не нейронная сеть для прохождения теста Тьюринга :)

Чтобы многое не писать с нуля советую глянуть на phpdaemon На хабре о нём тоже писали
Ответ написан
Комментировать
Horse
@Horse
2000 сообщений в час — не большая нагрузка для stateless (а я так понимаю, от состояний мало что зависит). В первую очередь нужно оптимизировать запросы к БД. А про сам XMPP можно не парится, уверен, что низкоуровневой работы с памятью, потоками, соккетами вам не требуется. Если есть готовая библиоткеа на php — используйте и не бойтесь — даже будет лучше, бо с++ web приложения они компилятся в нативный код и небольшая ошибка сделает ваш XMPP бот не готовым к 24/7. А в php ошибки не влияют на само приложение (web сервер не остановится). nginx (или что там у вас) разберется с памятью на должном уровне. Главное чтобы не apache).
Ответ написан
OdaN
@OdaN
Для пхп есть готовые скрипты: code.google.com/p/xmpphp/. Писал на его основе бота себе. Впринципе при небольшом допиливании вполне рабочий инструмент.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы