Программирование с помощью Twisted на основе сокетов FD

#python #sockets #twisted #reactor

#питон #сокеты #twisted #реактор

Вопрос:

Я пытаюсь написать TCP-сервер (на основе реактора), который работает следующим образом:

  • Сервер принимает подключения
  • Сервер получает от каждого соединения определенный идентификатор, который он сопоставляет непосредственно с FD соединения
  • Сервер отслеживает (асинхронно) эти конкретные идентификаторы (это могут быть идентификаторы определенных файлов или записей в базе данных).
  • При изменении определенного идентификатора сервер отправляет сообщение конкретному клиенту, которое сопоставляется с идентификатором

Я не видел ничего подобного в twisted. Каждое соединение в twisted напрямую вызывает «protocol.DataReceived (data)» без упоминания FD, поэтому он не знает, из какого сокета были получены данные.

Теперь я, вероятно, что-то упускаю, поэтому вопрос в том,
есть ли способ написать это чисто, используя Twisted? Написание поведения сервера на основе FDS? и если twisted не обладает такой функциональностью, что вы предлагаете использовать?