Python интеграция aiogram + Socket.IO Server
Возник вопрос, как правильно вызвать функции sio.emit(), sio.send(), sio.call() в функции aiogram.
Возможно ли как-то осуществить подобный код:
@dp.message_handler()
async def process_start_command(message: types.Message):
await sio.send(message.text)
await message.reply('Готово')
Связь клиента и сервера удалось успешно создать.
server.py
from aiohttp import web
import socketio
sio = socketio.AsyncServer(logger=True, engineio_logger=True)
app = web.Application()
sio.attach(app)
@sio.on('message')
async def print_message(sid, message):
print('\n' + "ID: " , sid)
print(message)
@sio.event()
async def connect(sid, environ):
print(f'Соединение с {sid} установленно')
if __name__ == '__main__':
web.run_app(app)
client.py
import asyncio
import socketio
sio = socketio.AsyncClient(logger=True, engineio_logger=True)
@sio.event
async def message(data):
print('Получил сообщение ', data)
async def main():
await sio.connect('http://localhost:8080')
await sio.wait()
if __name__ == '__main__':
asyncio.run(main())
Ответы (1 шт):
Автор решения: Rur1k
→ Ссылка
Можно использовать вот такой вариант:
sio = socketio.AsyncClient()
@dp.message_handler()
async def process_start_command(message: types.Message):
await sio.connect(SOCKET_URL)
await sio.emit('test', {'test': 'test'})
await message.reply('Готово')