Мессенджер на python
Появилась мысль создать простой чат\мессенджер на Python(+- 100 участников), в следствии чего возник вопрос. Мне придется искать сервер и платить за него, или можно это сделать как-то без него? А если можно без него, то как это реализовать?
Попытки найти ответ на мой вопрос в интернете были, но либо я не понял, либо ответа на него не было. Если вы имеете представление как это сделать, прошу помочь, хотя бы книгой, роликом или статьей где будет про это говориться.
(я не в коем случае не прошу готовое решение, я просто решил спросить у людей, которые понимают в программировании лучше меня)
Ответы (2 шт):
Я пару раз выкладывал концепт p2p месенжера на стековерфлоу. работать можно без сервера вообще, но нужен ещё один месенжер чтоб обменяться контактами для соединения.
Реализуется это через udp и stun. stun пробивает udp порт во внешнюю сеть, а udp позволяет посылать сообщения без установки соединения = без сервера.
Нужно только опубликовать контакт (ip, port) одного из участников и через него получить остальные. Что-то в стиле DHT. Или использовать другой месенжер (например пуши гугла, публичный сип сервер или даже смски) для обмена контактами.
Если вы новичок в сетевом программировании - то начните с месенжера с сервером. Сервер можно найти бесплатно по акции или на начальных тарифах pythonanywhere, oracle и тп. На домашнем интернете есть шанс что у вас белый адрес - можно пробросить порт.
В целом и общем, если нет желания арендовать сервера, то можно сделать несколько вариантов:
- Сделать в качестве сервера свой пк
- Сделать в качестве сервера телефон
В обоих случаях нужно открывать порты для сети и не менять её в ходе общения, что не очень удобно и не всегда возможно. Так же при таком раскладе чат будет доступен только тогда, когда телефон/пк включен и на нём запущена программа, выполняющая роль сервера.
Если нужен постоянный чат, увы, придётся арендовать VPS/VDS сервер и платить за него.