Мы внедряем чат-сервер, используя Tornado.
Суть проста: пользователь открывает HTTP-соединение Ajax с сервером Tornado, а сервер Tornado отвечает только тогда, когда в чате появляется новое сообщение. Всякий раз, когда соединение закрывается, независимо от того, поступило ли новое сообщение или произошла ошибка / тайм-аут, клиент повторно открывает соединение.
Глядя на Торнадо, возникает вопрос о том, какую библиотеку мы можем использовать, чтобы позволить этим вызовам ожидать некоторый центральный объект, который будет им сигнализировать - A_NEW_MESSAGE_HAS_ARRIVED_ITS_TIME_TO_SEND_BACK_SOME_DATA
.
Чтобы описать это в терминах Win32, каждый асинхронный вызов будет представлен в виде потока, который будет висеть на WaitForSingleObject(...)
в некотором центральном Mutex / Event / и т. Д.
Мы будем работать в стандартной среде Python (Tornado), есть ли что-то встроенное, что мы можем использовать, нужна ли нам внешняя библиотека / сервер, есть ли что-то, что Tornado рекомендует?
Спасибо