0
0 комментариев

Возникла идея создания чата на Tornado, с условием, что он (чат) будет связывать клиента на сайте и клиента в телеграмме, и они могли бы обмениваться между собой сообщениями.
Tornado с клиентом на сайте будет связываться по WebSocket, бот для телеграма написан с помощью telebot, те изначально сообщение с сайта придет в tornado и потом отправится в telegram, с этим проблем нет, проблемы в понимании как бот будет передавать сообщение от пользователя, который ответил с телеграма.
Инициатором соединения по вебсокету всегда будет клиент с сайта, а клиент с телеграмм будет ему отвечать.

Бот:

bot = telebot.TeleBot(token)
def send_message_to_manager(message, chat_id):
    bot.send_message(chat_id, message)
@bot.message_handler(content_types=['text'])
def handle_text(message):
    print (message.text)
    return message.text
bot.polling()
 
class MainHandler(tornado.web.RequestHandler):
  def get(self):
    loader = tornado.template.Loader(".")
    self.write(loader.load("index.html").generate())
class WebSocketHandler(tornado.websocket.WebSocketHandler):
  def open(self):
    print ('connection opened...')
    self.write_message("The server says: 'Hello'. Connection was accepted.")
  def on_message(self, message):
    self.write_message("You said: " + message)
    telegramBots.send_message_to_manager(message)
    print ('received:', message)
  def on_close(self):
    print ('connection closed...')
application = tornado.web.Application([
  (r'/ws', WebSocketHandler),
  (r'/', MainHandler),
  (r"/(.*)", tornado.web.StaticFileHandler, {"path": "./resources"}),
])
if __name__ == "__main__":
  application.listen(9090)
  tornado.ioloop.IOLoop.instance().start()

Помогите разобраться в том, как связать этого бота и торнадо.

Изменен статус публикации
Добавить комментарий