Мне нужно разработать шлюз с помощью библиотеки Telethon:
https://github.com/LonamiWebs/Telethon
Шлюз должен создать серверный сокет, к которому подключен клиент телеграммы.
Когда шлюз получает сообщение от сокета (клиентом), он отправляет конкретное сообщение на сервер Telegram (через Telethon). Когда он получает обновление от сервера telegram, он отправляет сообщение клиенту через сокет.
Я начал с этим кодом:
async def main(socket):
client = await TelegramClient(session_name, api_id, api_hash).start()
@client.on(events.NewMessage)
async def handler(event):
#new message, sending to the socket...
try:
mess = event.message.message
message = (mess).encode()
socket.send(message)
except Exception as e:
print("Exception: ",e)
await client.run_until_disconnected()
MAIN ->
print("Start program...")
HOST = '127.0.0.1'
PORT = 65436
print("Waiting connection at the port: ",PORT)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5)
conn, addr = s.accept()
print("Connection OK!")
asyncio.get_event_loop().run_until_complete(main(conn))
Этот код при получении нового сообщения от сервера телеграммы правильно отправит сообщение (через сокет) клиенту телеграммы.
Проблема в том, что я не знаю, как прослушивать сокет и, когда я получаю сообщение (от клиента сокета), отправляю его на сервер телеграммы.
P.S. После строки ожидайте client.run_until_disconnected () Я ничего не могу сделать.
Большое спасибо !!!