Где можно найти примерный список требований и стека технологий для продвинутого веб-чата?
===========================================================================================

 Собственно вопрос: хочу написать текстовый веб-чат. Вводные следующие:  

Архитектура: клиент-серверная. Протокол TCP.  

Язык (к вопросу не относится, но на всякий случай уточню) - python  

Что сейчас готово: Есть скрипт сервера и клиента - клиенты могу обмениваться между собой сообщениями. В принципе - базовая и основная часть готова - чат делает ровно то что и должен, НО я хочу каким-нибудь образом (да-да, точные формулировки) ) развить его функционал - не в смысле смайлы и прочая дребедень (тем более, что пока-что это просто консольный текстовый чат), а повысить отказоустойчивость, добавить поддержку каких-нибудь специализированных протоколов, шифрование? Проблема в том, что я не могу понять - куда все это дело развивать - и все заканчивается вышеприведенными формулировками - "какие-то протоколы и т.п.". Например, Telegram, Viber и им подобные - можно где-нибудь увидеть примерный стек технологий/"фишек", которые в них реализованы?  

Что можете посоветовать для развития идеи? 

 Берите открытый протокол и наворачивайте. Например XMPP. 

 Транспортный протокол - websocket и опционально webrtc (для передачи данных между клиентами, например файлы передать или аудио/видео звонок)  

  

Отказоустойчивость это немного не про выбор протокола, а про организацию бакэнда в принципе. Плюс тестирование в различных ситуациях.  

К примеру мобильные сети часто банят webrtc (вообще капризный протокол, так что предусмотри откат на классическую передачу через сервер) плюс борьба с nat, stun сервера и т.п.  

  

Текстовый чат это очень простая задача, можно тупо посмотреть готовый на примерах для websocket и webrtc, все нюансы как раз вылезают когда начинаешь добавлять фичи.