Программа чата без центрального сервера - PullRequest
4 голосов
/ 01 января 2011

Я разрабатываю приложение для чата (в VB.Net).Это будет «безопасная» программа чата.Весь трафик будет зашифрован (мне также нужно найти лучший подход для этого, но это пока не вопрос).

В настоящее время программа работает.У меня есть серверное приложение и клиентское приложение.Однако я хочу настроить приложение так, чтобы оно не нуждалось в центральном сервере для его работы.

Какой подход я могу использовать для децентрализации сети?

Я думаю, что мне нужно разработатьклиенты таким образом, что они также действуют как сервер.

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

В лучшем случае я не хочу, чтобы клиенты знали, какие IP-адреса у разных узлов, однако яне думаю, что это было бы возможно без центрального сервера.

Как уже говорилось, приложение будет написано на VB.Net, но я думаю, что на данном этапе язык не имеет значения.

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

Ответы [ 3 ]

2 голосов
/ 01 января 2011

Посмотрите, например, статью протокола Kademlia ( вы можете найти ее здесь ). Если вы просто хотите получить краткий обзор, посмотрите на страницу Википедии http://en.wikipedia.org/wiki/Kademlia. Протокол Kademlia определяет децентрализованный способ поиска узлов в сети. Он был успешно применен в программном обеспечении eMule - поэтому он проверен на подлинную работу.

Это не должно вызвать серьезных проблем с применением его в вашем программном обеспечении чата.

2 голосов
/ 01 января 2011

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

Есть в основном только два варианта - либо пользователь предоставляет один (для существующего узла сети - по существукак работают BitTorrent-трекеры), или вы жестко программируете на узле шлюза (который фактически является центральным сервером).

0 голосов
/ 11 октября 2012

Может быть, вы можете увидеть программу uChat.Это программа от создателя uTorrent с чатом без сервера.

Идея состоит в том, чтобы подключиться к рою с помощью магнитной ссылки и использовать его для отправки получаемых сообщений.Это как янтарный ответ, вам нужна точка доступа, может ли это сервер, роуминг, ip и т. Д.

Вот презентация uChat: http://blog.bittorrent.com/2011/06/30/uchat-we-just-need-each-other/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...