Как я могу кодировать сеть p2p веб-приложения? - PullRequest
0 голосов
/ 11 мая 2011

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

Я не хочу иметь большой главный сервер, который должен обрабатывать весь этот трафик. То, что компьютер пользователя является сервером, уговаривает.Я понимаю, что буду использовать торрент.

Все это должно быть сделано на веб-сайте.

Будет ли работать веб-сокет?

Пожалуйста, и спасибо.

Ответы [ 3 ]

2 голосов
/ 11 мая 2011

Это действительно невозможно по ряду причин:

  • Брандмауэры / NAT
  • Динамические IP-адреса
  • На компьютерах пользователей не запущен "сервер"
  • Разрешения на компьютере пользователя
  • Что произойдет, если пользователь просто удалит файл на своем компьютере?

Чтобы реально заставить его работать, вам нужно:

  • Убедить пользователя установить приложение на его компьютер (вам понадобится Windows / Linux /)... EXE)
  • Заставьте пользователя открыть порт в брандмауэре (или используйте некоторую библиотеку для включения NAT passthru)
  • Попросите ПК пользователя пропинговать ваш сервер в случае изменения IP-адреса пользователя

На стороне сервера вам придется хранить несколько таблиц базы данных, вот некоторые из них, которые я могу придумать:

  • Таблица пользователя(идентификатор пользователя [PK], текущий IP-адрес, порт связи, (возможно, некоторые другие функции отслеживания))
  • Таблица доступных загрузок (идентификатор загрузки [PK], идентификатор пользователя [FK])

Затем, когда кто-то хочет уйти и загрузить, вы должны (вероятно) запустить свое приложение с необходимыми аргументами (IP-адрес / порт / идентификатор файла удаленного пользователя) и сделать это для загрузки.

Это далеко не простой подвиг.

0 голосов
/ 13 мая 2011

Вы можете использовать клиентскую библиотеку c # для взаимодействия с bittorrent и т. Д. И использовать этот режим для выгрузки / вымывания. Что касается проблем NAT / Firewall, они хорошо документированы и являются функцией используемого протокола, т.е. решают его.

0 голосов
/ 11 мая 2011

Если под WebSockets вы имеете в виду разновидность HTML5, я бы остался в стороне от этого. http://en.wikipedia.org/wiki/WebSockets#Browser_support

Компьютер, на котором нужно оставаться, - это в основном ваш сервер. Даже если это не большой сервер где-то.

Я бы предложил установить apache или какой-либо другой небольшой веб-сервер на компьютер каждого пользователя и иметь адрес dyndns для каждого компьютера, чтобы вы могли найти друг друга. это было бы намного проще, чем что-то кодировать. особенно если это должно быть через веб-страницу.

...