Где можно найти примерный список требований и стека технологий для продвинутого веб-чата?
Собственно вопрос: хочу написать текстовый веб-чат. Вводные следующие:
Архитектура: клиент-серверная. Протокол TCP.
Язык (к вопросу не относится, но на всякий случай уточню) - python
Что сейчас готово: Есть скрипт сервера и клиента - клиенты могу обмениваться между собой сообщениями. В принципе - базовая и основная часть готова - чат делает ровно то что и должен, НО я хочу каким-нибудь образом (да-да, точные формулировки) ) развить его функционал - не в смысле смайлы и прочая дребедень (тем более, что пока-что это просто консольный текстовый чат), а повысить отказоустойчивость, добавить поддержку каких-нибудь специализированных протоколов, шифрование? Проблема в том, что я не могу понять - куда все это дело развивать - и все заканчивается вышеприведенными формулировками - "какие-то протоколы и т.п.". Например, Telegram, Viber и им подобные - можно где-нибудь увидеть примерный стек технологий/"фишек", которые в них реализованы?
Что можете посоветовать для развития идеи?
Транспортный протокол - websocket и опционально webrtc (для передачи данных между клиентами, например файлы передать или аудио/видео звонок)
Шифрование сам выбирай, и это не питон а javascript клиентская сторона.
Отказоустойчивость это немного не про выбор протокола, а про организацию бакэнда в принципе. Плюс тестирование в различных ситуациях.
К примеру мобильные сети часто банят webrtc (вообще капризный протокол, так что предусмотри откат на классическую передачу через сервер) плюс борьба с nat, stun сервера и т.п.
Текстовый чат это очень простая задача, можно тупо посмотреть готовый на примерах для websocket и webrtc, все нюансы как раз вылезают когда начинаешь добавлять фичи.
Общепринятое определение - если "веб-...." то это значит 'запускается в браузере' кстати не обязательно подключенное к WEB internet, то может быть сервис в закрытой сети.
веб-сервис/веб-приложение это приложение, работа с которым подразумевает (но не ограничивается) тем что с ним будут работать из браузера.
Веб-чат частный пример веб-приложения. Доступный стек технологий для веб приложений на текущий момент ограничен, и аналог websocket это прямой аналог tcp sockets из мира 'не web приложений' (кстати webrtc это косвенно аналог udp, только приправленный p2p, с ограничениями, да есть quic и его частная реализация http3, в котором все постарались объединить, но зачастую это уже проблема браузера, и для приложения это почти сокрыто).
p.s. так получилось что сейчас даже не для веб-приложений разработчики серверной части используют http протокол для общения, так как специалисты в этой области дешевле, да и провайдеры ставят палки в колеса 'непонятным протоколам связи'
И в догонку, приложения на базе, к примеру, electron, хоть и являются не веб приложениями, внутри это в большей степени обычный браузер и обычное веб приложение, вносят путаницу в терминологию, поэтому если тебе что то спорное нужно, лучше об этом сразу говорить, а то мало ли что ты подразумеваешь под 'веб чат'