Бессерверный интернет-клиент для чата? - PullRequest
4 голосов
/ 17 февраля 2011

Кто-нибудь знает о логике бессерверного клиента чата, который мог бы соединяться не по всей локальной сети , но по всему интернету? Ему не нужно иметь возможность обнаруживать других пользователей по всему миру, ему просто нужно получить какую-то уникальную идентификацию, чтобы иметь возможность подключаться к пользователю, например, IP или какой-то уникальный идентификатор.

1 Ответ

2 голосов
/ 17 февраля 2011

Для начала вам понадобится некоторая информация откуда-то. Вы не можете просто включить его и начать общаться, не зная, где все. У вас может быть один узел, который постоянно подключен к сети и знает несколько других узлов. Другие узлы будут знать другие узлы и те будут знать больше, и т.д. Это спорно, будете ли или не вы называете этот статический узел «сервером» или нет. Это может быть просто узел вашего друга или общедоступный IP-адрес. После того, как вы приступите к работе, вам больше не понадобится начальный узел.

В этом типе системы вам нужно будет запросить соседей, если вы хотите какую-то идентификацию помимо IP-адреса. У IP-адреса также есть свои недостатки: у вас может быть два человека за маршрутизатором при домашнем соединении DSL. Для уникальных идентификаторов потребуется рекурсивный запрос по всей сетке, чтобы выяснить, является ли ваш идентификатор уникальным.

В этом типе системы вам нужно знать только ограниченное количество людей, чтобы общаться с кем-либо, поскольку вы можете запросить всех вокруг вас (и запрос происходит рекурсивно) для определения местонахождения этого человека. Искусственный лимит на количество людей, хранящихся на локальном узле, может быть реализован с помощью алгоритма наименьшего количества недавно использованных, вроде кеша ЦП.

...