我正在做一个关于Android的蓝牙大学项目,我正在努力了解如何管理多个连接设备之间的通信。最终我将开发一款多人蓝牙游戏。
目前我已经使用Android的示例应用程序BluetoothChat来连接我的三款Nexxus One手机。 1连接到2连接到3 1成功发送消息到2. 3也成功发送消息到2。 2可以成功地将其消息发送到1和3,因为它与两者共享ConnectedThread。但我无法弄清楚如何处理从1到3的通信。
有没有人有多个设备之间的通信示例,或者自己做过这个?感谢
答案 0 :(得分:4)
一种方法是使用发送方和接收方注释您的消息,以便当2获取消息时,它知道将消息传递给3.当3获取消息时,它检查接收方属性以确定它来自设备1.这个额外的层允许您通过其他设备发送和接收消息,并且仍然能够知道它是谁。
首先,您需要弄清楚如何让每台设备都了解网络上的其他所有设备。如果您只是连接一条线路,例如1-2-3-4,那么每次设备进入网络时,您都可以通过网络发送更新的列表,但如果2退出会发生什么?你刚退出游戏吗?等待它重新配对?在这种情况下,最好看一下peer-to-peer网络,或者让一台设备成为主机的典型客户端服务器架构,特别是如果以后这是一个多人游戏。 希望有所帮助!
答案 1 :(得分:0)
可以同时使用多个蓝牙套接字,因此您也可以考虑配置为充当服务器,如IRC或XMPP服务器,它可以代理从任何客户端到另一个客户端的所有通信。
如果您要求出现容错(例如服务器套接字故障),那么在连接到服务器时,它可能会提供最近看到的蓝牙设备列表,如果服务器出现这种情况,您可以重新启动它们下跌降落。