我需要为每个用户制作一个具有深层条件树的多人机器人。 需要多个用户才能同时使用机器人。而且他们的会话不会互相打扰。 如何创建异步(或者我不需要异步?)电报机器人红宝石?或者其他方式来实现我的任务。 我正在使用 gem telegram-bot-ruby。 在下面的代码中,您将看到一个非常简单的示例,说明我如何尝试构建机器人。但如果多个用户同时开始使用该机器人,一切都会崩溃。 还是我的问题在于错误的方法和实施? 我将非常感谢您的建议。
Telegram::Bot::Client.run(token) do |bot|
bot.listen do |message|
case message.text
when '/start'
bot.api.send_message(chat_id: message.chat.id, text: "Hello, enter name:")
bot.listen do |message2|
@name = message2.text
break
end
bot.api.send_message(chat_id: message.chat.id, text: "Nice to meet you #{@name},now input age")
bot.listen do |message3|
@age = message3.text
break
end
when '/stop'
bot.api.send_message(chat_id: message.chat.id, text: "Bye")
else
bot.api.send_message(chat_id: message.chat.id, text: "Enter /start ")
end
end
end
我尝试在 github 上查看 telegram ruby bot 实现的示例,用 google 搜索,但仍然没有弄清楚。我将机器人编写为独立脚本。我不使用导轨。
要使用多用户机器人,您可以使用线程包装侦听器代码
Telegram::Bot::Client.run(token) do |bot|
bot.listen do |message|
Thread.start(message) do |message|
# make stuff
end
end
end
每个会话都将在单独的线程中工作
以及其他为您提供的想法: