Адаптация Android Bluetooth Chat для нескольких устройств - PullRequest
5 голосов
/ 01 июня 2010

Я делаю проект колледжа по Bluetooth для Android и пытаюсь понять, как управлять связью между несколькими подключенными устройствами. В конце концов я собираюсь разработать многопользовательскую игру Bluetooth.

В настоящее время я адаптировал пример приложения Android для BluetoothChat для подключения трех моих телефонов Nexxus One. 1 подключается к 2, кто подключается к 3 1 успешно отправляет свои сообщения 2. 3 также успешно отправляет свои сообщения 2. 2 может успешно отправлять свои сообщения 1 и 3, так как он совместно использует ConnectedThread с обоими. Но я не могу понять, как справиться с получением связи от 1 до 3.

Есть ли у кого-нибудь примеры связи между несколькими устройствами или они это сделали сами? Спасибо

Ответы [ 2 ]

4 голосов
/ 01 июня 2010

Один из способов - аннотировать ваши сообщения отправителем и получателем, чтобы, когда 2 получает сообщение, он знал, что должно доставить его до 3. Когда 3 получает сообщение, он проверяет атрибут получателя, чтобы узнать, что оно от устройства. 1. Этот дополнительный слой позволяет отправлять и получать сообщения через другие устройства и при этом иметь возможность узнать, от кого он поступил.

Во-первых, вам нужно выяснить, как сообщить каждому устройству обо всех остальных устройствах в сети. Если вы просто подключаетесь по линии, например 1-2-3-4, то каждый раз, когда устройство входит в сеть, вы можете отправлять обновленный список по сети, но что произойдет, если выпадет 2? Ты только что вышел из игры? Ждать, пока он будет восстановлен? В этом случае может быть лучше взглянуть на сеть peer-to-peer или типичную архитектуру клиент-сервер, где вы позволяете одному устройству быть хостом, особенно если это предназначено для того, чтобы впоследствии быть мультиплеером игры.
Надеюсь, это поможет!

0 голосов
/ 02 июня 2010

Возможно одновременное использование нескольких разъемов Bluetooth, поэтому вы можете также рассмотреть возможность настройки для работы в качестве сервера, такого как сервер IRC или XMPP, который посредничает во всем обмене данными от любого клиента к другому.

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

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