Я делаю проект колледжа на Bluetooth для Android, и я пытаюсь понять, как управлять коммуникацией между несколькими подключенными устройствами. В конечном счете я собираюсь разработать многопользовательскую Игру Bluetooth.
В настоящее время я адаптировал демонстрационное приложение Android BluetoothChat для соединения моих трех Nexxus, которым Каждый звонит. 1 подключение к 2, кто соединяется с 3 1, отправляет его сообщения успешно в 2. 3 отправляет его сообщения успешно в 2 также. 2 может отправить его сообщения успешно в 1 и 3, поскольку это совместно использует ConnectedThread с обоими. Но я не могу выяснить, как обработать получение коммуникации от 1 до 3.
Кто-либо имеет какие-либо примеры коммуникации между несколькими устройствами или сделал это самими?Спасибо
Одним из способов является аннотация ваших сообщений с указанием отправителя и получателя, так что когда 2 получает сообщение, он знает, что нужно передать его 3. Когда 3 получает сообщение, он проверяет атрибут получателя, чтобы узнать, что оно от устройства 1. Этот дополнительный уровень позволяет вам отправлять и получать сообщения через другие устройства и при этом знать, от кого они получены.
Сначала, однако, вам нужно выяснить, как сделать так, чтобы каждое устройство знало обо всех других устройствах в сети. Если вы просто соединяетесь в линию, как 1-2-3-4, то каждый раз, когда устройство входит в сеть, вы можете отправить обновленный список по сети, но что произойдет, если 2 устройства выпадут из сети? Вы просто выйдете из игры? Ждать, пока он будет снова подключен? В этом случае, возможно, лучше рассмотреть одноранговую сеть, или типичную архитектуру клиент-сервер, когда вы позволяете одному устройству быть хостом, особенно если предполагается, что впоследствии это будет многопользовательская игра.
Надеюсь, это поможет!
Возможно одновременное использование нескольких Bluetooth сокетов, поэтому вы также можете рассмотреть возможность конфигурирования для работы в качестве сервера, как IRC или XMPP сервер, который посредничает во всех коммуникациях от одного клиента к другому.
Если вы хотите обеспечить отказоустойчивость (например, серверный сокет выходит из строя), то при подключении к серверу он может предоставить список недавно виденных Bluetooth-устройств, к которым вы можете вернуться в случае выхода из строя сервера.