Разработка мессенджера
От: MikelSV http://www.centerix.ru
Дата: 08.05.15 20:34
Оценка: 2 (2) :)
Приветствую.
Пишу мессенджер, ближайший аналог — Телеграмм. Спустя две недели ударных разработок получилась версия позволяющая посылать и принимать сообщения и в общем-то все. Альфа версия доступна для тестирования тут: https://plus.google.com/u/0/communities/102545024447070118113 (Требуется добавиться в группу, чтобы гугл дал доступ к тестированию.)

Несомненно, это большой шаг для человека и никакой для человечества.


Подскажите по следующим вопросам:

1. Текущая версия работает через HTTP. Запрос к серверу каждые несколько секунд. Я понимаю, что это откровенно хреновая реализация. Подскажите, как правильно реализовать логику на сервере. Понятно, что должно быть реализовано постоянное подключение. Но я не до конца понимаю, как с этим работать. Сейчас: запрос -> apache -> php -> mysql -> ответ. Нужно: запрос -> сервер подписывает сокет на события и высылает их по мере появления. Это можно реализовать на apache + php или нужно брать/писать сервер?
Как организовывается структура серверов для высоконагруженных мессенджеров? Мне не хватает базового понимания, простейшей логики, на которой все основывается. Сейчас ко мне приходит понимание, как должно работать: после подключения клиента сервер подписывает его на события. При событии в сокет высылается соответствующее сообщение. Соект идентифицируется по id пользователя. Плюс хеш таблицу, для быстрого поиска. Как организовывается взаимодействие, если серверов два?

1.1 Телеграмм обещает работать через UDP.
Это вообще реально: на мобильное соединение и UDP? Я тоже такое хочу. )

2. Как организовать защиту данных при передаче через сеть?
Я игрался с mitm прокси, достаточно одной таблетки^W^W сертификата в браузер. Не стоит ли в этом случае вшить RSA ключи в программу и работать через них? Разница в шифровании никакой, при попытке перенаправления соединения выходит легкий облом.

3. Как организовывать приватные чаты? Теория понятна, обменяться RSA ключами, договориться о ключе AES. Как на практике доказать, что чат не может прослушиваться, учитывая, что может прослушиваться и модифицироваться интернет канал(mitm), а так же сам сервер мессенджера давно и плотно в надежных руках.

4. Где искать пользователей?
В пространстве мессенджера жизни нет, и никому особо такое пространство не нужно. Пишу порт на xmpp, дабы подцепить пространство джаббера с хоть какими-то пользователями. Предложу им мобильный клиент, через который можно сидеть в джаббере.
Где еще брать пользователей?

5. Буду благодарен за объективную критику приложения.
Я знаю, что дизайн никакой.
Я знаю, что функционала чуть меньше чем нет.
Я знаю, что такое приложение никому не нужно.
Я даже могу догадываться, что его стоит выкинуть.
Нет, я не перестану его писать.
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.