2010-06-01 8 views
5

Estoy haciendo un proyecto universitario sobre Bluetooth para Android, y estoy tratando de entender cómo administrar la comunicación entre múltiples dispositivos conectados. Eventualmente voy a desarrollar un juego Bluetooth multijugador.Adaptación de Android Bluetooth Chat para dispositivos múltiples

Actualmente he adaptado la aplicación de muestra de Android BluetoothChat para conectar mis tres teléfonos Nexxus One. 1 se conecta a 2 que se conecta a 3 1 envía sus mensajes con éxito a 2. 3 envía sus mensajes con éxito a 2 también. 2 puede enviar sus mensajes con éxito a 1 y 3, ya que comparte un ConnectedThread con ambos. Pero no puedo entender cómo manejar la comunicación del 1 al 3.

¿Alguien tiene algún ejemplo de comunicación entre varios dispositivos o lo ha hecho por sí mismo? Gracias

Respuesta

4

Una forma es anotar sus mensajes con el emisor y el receptor, de modo que cuando 2 recibe el mensaje, sabe entregarlo a 3. Cuando 3 recibe un mensaje, verifica el atributo del receptor para saber que es desde el dispositivo 1. Esta capa adicional le permite enviar y recibir mensajes a través de otros dispositivos y aún así saber de quién es.

En primer lugar, tendrá que averiguar cómo hacer que cada dispositivo conozca los demás dispositivos de la red. Si solo se está conectando en una línea, como 1-2-3-4, cada vez que un dispositivo ingresa a la red, puede enviar una lista actualizada a través de la red, pero ¿qué ocurre si 2 se desconectan? ¿Acabas de dejar el juego? Espera a que se vuelva a emparejar? En este caso, puede ser mejor mirar una red peer-to-peer, o la arquitectura típica de servidor de cliente donde se permite que un dispositivo sea el host, especialmente si se pretende que sea más tarde un juego de varios jugadores.
Espero que ayude!

+0

¡Qué maravillosa respuesta! – HXCaine

0

Es posible tener varios enchufes Bluetooth en uso simultáneamente, por lo que también puede considerar la configuración para actuar como un servidor, como un servidor IRC o XMPP, que gestiona todas las comunicaciones de un cliente a otro.

Si opta por la tolerancia al error (por ejemplo, el socket del servidor se cae), luego de conectarse al servidor, podría proporcionar una lista de dispositivos Bluetooth recientemente vistos que podría volver a utilizar en caso de que el servidor se cae

Cuestiones relacionadas