2010-06-01 3 views
5

Ich mache ein College-Projekt über Bluetooth für Android, und ich versuche zu verstehen, wie Sie die Kommunikation zwischen mehreren verbundenen Geräten verwalten. Irgendwann werde ich ein Multiplayer-Bluetooth-Spiel entwickeln.Android Bluetooth Chat für mehrere Geräte anpassen

Momentan habe ich Androids Beispiel-App BluetoothChat angepasst, um meine drei Nexxus One-Telefone zu verbinden. 1 verbindet sich mit 2, der mit 3 verbindet 1 sendet seine Nachrichten erfolgreich an 2. 3 sendet seine Nachrichten erfolgreich auch an 2. 2 kann seine Nachrichten erfolgreich an 1 und 3 senden, da es ein ConnectedThread mit beiden teilt. Aber ich kann nicht herausfinden, wie man Kommunikation von 1 bis 3 bekommt.

Hat jemand irgendwelche Beispiele für die Kommunikation zwischen mehreren Geräten oder hat dies selbst getan? Dank

Antwort

4

Ein Weg ist, Ihre Nachrichten mit dem Absender und Empfänger zu kommentieren, so dass, wenn 2 die Nachricht erhält, es an 3 weiterleiten. Wenn 3 eine Nachricht erhält, überprüft es das Empfängerattribut, um zu wissen, dass es ist von Gerät 1. Diese zusätzliche Schicht ermöglicht es Ihnen, Nachrichten über andere Geräte zu senden und zu empfangen und trotzdem zu wissen, von wem sie stammt.

Zunächst müssen Sie jedoch herausfinden, wie Sie jedes Gerät über jedes andere Gerät im Netzwerk informieren. Wenn Sie nur eine Leitung wie 1-2-3-4 anschließen, können Sie jedes Mal, wenn ein Gerät in das Netzwerk eintritt, eine aktualisierte Liste über das Netzwerk senden, aber was passiert, wenn 2 ausfällt? Beendet du das Spiel? Warten Sie, bis die Verbindung wiederhergestellt ist. In diesem Fall ist es möglicherweise besser, sich ein Netzwerk peer-to-peer oder die typische Client-Server-Architektur anzuschauen, in der Sie ein Gerät als Host verwenden, insbesondere wenn es sich später um ein Mehrspieler-Spiel handelt.
Hoffe, dass hilft!

+0

Was für eine wunderbare Antwort! – HXCaine

0

Es ist möglich, mehrere Bluetooth-Sockets gleichzeitig zu verwenden, so dass Sie auch die Konfiguration als Server wie einen IRC- oder XMPP-Server in Erwägung ziehen, der die gesamte Kommunikation von einem Client zum anderen vermittelt.

Wenn Sie sich für Fehlertoleranz (z. B. Server-Socket) entscheiden, kann es beim Herstellen einer Verbindung zum Server eine Liste der zuletzt gesehenen Bluetooth-Geräte enthalten, auf die Sie zurückgreifen können Server geht aus.