2010-06-10 1 views
0

Я ищу список способов включения обнаружения сверстников в мобильных сетях, желательно без централизации управления. Очевидно, что разные методы имеют компромиссы, обычно связанные с масштабом/масштабом сети.Способы обнаружения сверстников в мобильных сетях Peer to Peer?

Мой первоначальный список включает в себя:

  • Bluetooth - хорошо для очень ограниченного диапазона
  • Сообщение Broadcast - хорошо для локальных сетей и частных сетей
  • Центральный сервер - хорошо для интернет масштабных сетей

Есть ли другие методы?

+0

Я бы подумал, что для эффективного запроса социальной сети потенциально миллионов пользователей ... вы бы предпочли сделать это на центральном сервере и просто отослали короткий список (<30) применимых пользователей (в соответствии с любыми критериями вы используете ... например, геолокацию, общие интересы, доступность и т. д.). Выполнение этого (вычисления) на мобильном устройстве кажется очень неэффективным. – scunliffe

ответ

0

Если вы хотите напрямую общаться между двумя конкретными мобильными устройствами, инициирующее устройство может действовать как временный сервер (например, ServerSocketConnection) и отправлять IP-адрес/порт на номер телефона другого мобильного устройства. Получающее устройство может автоматически просыпаться после получения SMS с помощью методов PushRegistry, извлекать список IP-адресов/портов в SMS-сообщении и подключаться к серверному сокетному соединению.

+0

Спасибо, Дэн, только один вопрос, как работает соединение через NAT оператора мобильной связи? Поэтому, когда мое устройство подключено через 3G/Edge, я могу видеть публично адресуемый IP-адрес подключенной к сети сети, но фактический IP-адрес моего устройства является частным IP (10.xxx), сидящим за брандмауэром операторов. – MalcomTucker

+0

Хорошо вопрос. Насколько мне известно, существуют общеизвестные стандарты, которые помогут решить эту часть проблемы. Один из них называется STUN, а другой называется NAT-PMP (на котором основан Bonjour от Apple). Оба основаны на существовании какого-то сервера (внутри или вне NAT), который может быть запрошен для (или создания) общедоступного IP-адреса. Когда я реализовал это несколько лет назад, я сделал это в рамках одного мобильного оператора (Cingular), где два мобильных телефона сидели за одним NAT. – Dan