Я немного покопался в WebSockets и был очень доволен тем, как легко было запустить сервер Tornado, который выполняет базовые соединения через веб-сокеты. Я никогда не использовал Торнадо до сегодняшнего дня, и хотя мне нравится то, что я видел, у меня есть несколько вопросов относительно его использования.
Прежде всего, я использую WebSockets, чтобы у меня была небольшая служебная связь между двумя или более клиентскими машинами. (Для целей разговора давайте просто скажем, что это клиент чата) Очевидно, я могу подключиться к серверу с нескольких машин, и все они могут отправлять сообщения на сервер, и сервер может отвечать, что здорово! Но это не намного лучше, чем ваши стандартные запросы AJAX. Если у меня постоянное соединение, я хочу иметь возможность передавать данные и клиентам. Самый простой возможный сценарий: пользователь 1 отправляет сообщение на сервер, а после его получения сервер немедленно отправляет его пользователю 2.
Так, что было бы хорошим способом достигнуть этого? Насколько я вижу в Tornado, нет никакого способа для связи между соединениями, кроме как поместить сообщение в хранилище данных и провести опрос всех других соединений для получения новой информации. Это кажется мне очень неуклюжим, потому что все, что вы действительно делаете в этот момент, - это перенос процесса опроса с клиента на сервер.
Конечно, я могу здесь совсем не лаять. Безусловно, вполне вероятно, что Tornado просто не подходит для этой работы, и если бы это было так, я был бы рад услышать предложения по альтернативам!