Я написал бота B
, который принимает сообщения от клиента C1
и направляет его клиенту C2
, т.е. 2 человека могут подключаться через шлюз Bot
.Ejabberd - Отправить и Прием сообщений с помощью Bot
Я использую Sleekxmpp, библиотеку XMPP-клиента python для вышеуказанной цели.
import logging
from sleekxmpp import ClientXMPP
from sleekxmpp.exceptions import IqError, IqTimeout
class EchoBot(ClientXMPP):
def __init__(self, jid, password):
ClientXMPP.__init__(self, jid, password)
self.add_event_handler("session_start", self.session_start)
self.add_event_handler("message", self.message)
def session_start(self, event):
self.send_presence()
def message(self, msg):
if msg['type'] in ('chat'):
# receive message from the Client1
from, to = message['from'], message['to']
message = message['body']
# send message to Client2.
self.send_message(mto=recipient,
mbody=message,
mtype='chat')
if __name__ == '__main__':
xmpp = EchoBot('[email protected]', 'password')
xmpp.connect()
xmpp.process(block=True)
Теперь проблема, с которой Клиент C2 получает сообщение от BOT. Он должен скорее получить его от клиента C1. Чтобы это произошло, мне нужен пароль C1 для авторизации C1, который у меня нет в теле сообщения, и он не защищен для отправки пароля в теле.
Каков наилучший подход для создания шлюза BOT?