Я уже писал про отказ от устаревшего http и переход на xmpp вместе с созданием новых интернетов.
Поскольку сразу отказаться от http невозможно, возникает вопрос: как бы на один порт повесить сразу и http-сервер, и xmpp-сервер? Дело в том, что некоторые порты могут быть закрыты, а значит до 5222 порта потенциальный клиент может не достучаться. Правда непонятно еще, как быть с прокси-серверами на пути.
Пока примерно такая идея: через xinetd запускается скрипт, который читает первые 4 байта из сокета (благо, в обоих протоколах нету приветствия и сразу идет запрос от клиента), и если это "GET " или "POST", то запрос редиректится на порт веб-сервера, а иначе на порт xmpp-сервера. Но это слишком кривое решение, грозящее большими лагами (проверено на VNC), может есть что-то получше?